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

问题描述 投票:0回答:1

我有一份 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 dictionary assignment-operator
1个回答
0
投票

我建议将字典转换为字典列表。我将使用名称

d
而不是
dict
以避免与内置类
dict
:

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

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

df = pd.DataFrame(sales)
© www.soinside.com 2019 - 2024. All rights reserved.