从 pandas 数据框创建字典

Create dictionary from pandas dataframe

我有一个 pandas 数据框,其数据如下:

pandas dataframe

由此我需要创建一个字典,其中键是 Customer_ID,值是元组数组(feat_id,feat_value)。

正在使用数据帧上的 to_dict() 函数接近。

谢谢

你应该首先将Customer_ID设置为DataFrame索引,并使用df.to_dictorient='index'来获得一个形式为{index -> {column -> value}}的dict。 (参见 Documentation)。然后你可以使用字典理解提取内部字典的值以获得元组。

df_dict = {key: tuple(value.values()) 
           for key, value in df.set_index('Customer_ID').to_dict('index').items()}

使用理解:

out = {customer: [tuple(l) for l in subdf.to_dict('split')['data']]
        for customer, subdf in df.groupby('Customer_ID')[['Feat_ID', 'Feat_value']]}
print(out)

# Output
{80: [(123, 0), (124, 0), (125, 0), (126, 0), (127, 0)]}

输入数据帧:

>>> df
   Customer_ID  Feat_ID  Feat_value
0           80      123           0
1           80      124           0
2           80      125           0
3           80      126           0
4           80      127           0