我有以下数据框:
| Week | info |
| ---- | ---- |
| 1 |{'Info': 'text', 'value': 94615}, {'Info': 'text_2', 'value': 111968}|
| 2 |{'Info': 'text', 'value': 234}, {'Info': 'text_2', 'InfoB': 236}|
| 3 |{'Info': 'text', 'value': 524523}, {'Info': 'text_2', 'InfoB': 5555}|
我想打开 info 下的字典,我想我应该将数据框重新整形为多列索引......也许可以将其转换为多列索引数据框,如下所示:
>| Week | info |
| | text | text_2 |
| ---- | ------ | ------- |
| 1 | 94615 | 111968 |
| 2 | 234 | 236 |
| 3 | 524523 | 5555 |
有什么建议我该怎么做? 另外,对这些数据执行聚合的最佳方法是什么(例如文本的平均值、第 1 周的总和)数据透视表?
答案 0 :(得分:1)
我认为首先有必要改变字典的格式,然后像这样转换为DataFrame:
L = [dict([tuple(y.values()) for y in x]) for x in df.pop('info')]
df = df.join(pd.DataFrame(L, index=df.index))
print (df)
Week text text_2
0 1 94615 111968
1 2 234 236
2 3 524523 5555
另一个想法:
f = lambda x: dict([tuple(y.values()) for y in x])
df = df.join(pd.json_normalize(df.pop('info').apply(f)))