提问人:reenum 提问时间:5/6/2023 最后编辑:Trenton McKinneyreenum 更新时间:5/6/2023 访问量:64
如何将字典中的值分配给相等数量的数据帧列?
How do I assign values from a dictionary to a dataframe column in equal numbers?
问:
我有 5 个地区之一的销售代表列表。我需要将它们分配给数量相等的潜在客户列表。
下面是字典的示例:
d = {'Large': 'Jackson', 'Large': 'Stevens', 'Large': 'Miller', 'Medium': 'James', 'Medium': 'Samuels', 'Medium': 'Shandler', 'Small': 'Fast', 'Small': 'Shorter'}
下面是潜在客户列表数据帧的示例,我希望它在将字典中的销售代表分配到销售代表列后进行查看:
客户端规模 | 销售代表 |
---|---|
大 | 杰克逊 |
大 | 史蒂文斯 |
中等 | 詹姆斯 |
中等 | 塞缪尔斯 |
中等 | 钱德勒 |
中等 | 詹姆斯 |
中等 | 塞缪尔斯 |
中等 | 钱德勒 |
小 | 快 |
小 | 短 |
小 | 快 |
小 | 短 |
小 | 快 |
小 | 短 |
这是我到目前为止能够想出的代码:
import pandas as pd
# Create a dictionary
d = {'Large': 'Jackson', 'Large': 'Stevens', 'Large': 'Miller', 'Medium': 'James', 'Medium': 'Samuels', 'Medium': 'Shandler', 'Small': 'Fast', 'Small': 'Shorter'}
# Create a DataFrame
df = pd.read_csv('clientlist.csv')
# Assign the dictionary values to the DataFrame column
df['Sales Rep'] = df['Client Size'].map(d)
我不知道如何编写一个函数,该函数将以某种方式计算数据帧的“客户端大小”列中的匹配值的数量,然后从字典中均匀分布值。
答:
0赞
Code-Apprentice
5/6/2023
#1
我建议将字典转换为字典列表。我将使用名称而不是以避免与内置类的名称冲突:d
dict
dict
sales = [{'Client Size': k, 'Sales Rep': v for k, v in d.items()]
现在,您可以从此列表中获取数据帧:
df = pd.DataFrame(sales)
评论
dict
dict
{'Large': 'Miller', 'Medium': 'Shandler', 'Small': 'Shorter'}