如何将字典中的值分配给相等数量的数据帧列?

How do I assign values from a dictionary to a dataframe column in equal numbers?

提问人:reenum 提问时间:5/6/2023 最后编辑:Trenton McKinneyreenum 更新时间:5/6/2023 访问量:64

问:

我有 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)

我不知道如何编写一个函数,该函数将以某种方式计算数据帧的“客户端大小”列中的匹配值的数量,然后从字典中均匀分布值。

Python Pandas DataFrame 字典 赋值运算符

评论

1赞 Gareth Ma 5/6/2023
我对你的描述感到非常困惑(可能只是我的英语......),但为什么“大”:“米勒”不见了,为什么一切都重复了两次?你介意澄清一下吗
0赞 Code-Apprentice 5/6/2023
似乎您需要将字典转换为每个字典具有相同两个键的字典列表。
2赞 Code-Apprentice 5/6/2023
P.S. 不要用作变量名,因为 Python 内置库已经有一个名为 .dictdict
0赞 Nick 5/6/2023
你的字典不是你想象的那样......{'Large': 'Miller', 'Medium': 'Shandler', 'Small': 'Shorter'}

答:

0赞 Code-Apprentice 5/6/2023 #1

我建议将字典转换为字典列表。我将使用名称而不是以避免与内置类的名称冲突:ddictdict

sales = [{'Client Size': k, 'Sales Rep': v for k, v in d.items()]

现在,您可以从此列表中获取数据帧:

df = pd.DataFrame(sales)