转换pandas df为列表的dict

时间:2019-08-27 08:41:12

标签: python json pandas list dictionary

在这里 我想将数据框转换为列表的字典。

这是我的数据框

    day     session     sales
0   Friday  Early Morning   11105.50
1   Friday  Evening     8168.00
2   Friday  Late Night  1450.00
3   Friday  Morning     14802.00
4   Friday  Night   2925.00
5   Friday  Noon    10276.25
6   Monday  Early Morning   9553.75
7   Monday  Evening     11431.00

这就是我希望每天和每次会议都像这样

monday = {
        "name": "Monday",
        "data": [
            {
                "x": "Morning",
                "y": 18014.00
            }, 
            {
                "x": 'Night',
                "y": 2353.50
            }, 

            }
        ]
}

谢谢

1 个答案:

答案 0 :(得分:2)

我建议create dictionary整天key s进行选择:

df = df.rename(columns={'session':'x', 'sales':'y'})
df1 = df.groupby('day')['x','y'].apply(lambda x: x.to_dict('r')).reset_index(name='data')
print (df1)
      day                                               data
0  Friday  [{'x': 'Early Morning', 'y': 11105.5}, {'x': '...
1  Monday  [{'x': 'Early Morning', 'y': 9553.75}, {'x': '...

d = {k:v.to_dict('r') for k, v in df1.groupby('day')}
#print (d)

print (d['Monday'])
[{'day': 'Monday', 'data': [{'x': 'Early Morning', 'y': 9553.75}, 
                            {'x': 'Evening', 'y': 11431.0}]}]