【发布时间】:2018-06-01 07:55:39
【问题描述】:
我有以下情况: 我有一个带有“修订”列的数据框,该列被格式化为一个字典,其中包含多个其他字典,键为“a”和“b”。 修订属于关键列 id。我试图做的是摆脱 dict 格式。因此,我想为每个子字典列出它的值以及数据框的其他列。然后,新列应采用键的名称('a' 和 'b')
初始数据框:
id column2 (dict_column) column3
0 {{'a': 91125, 'b': 233}{'a': 955, 'b': 267}} Marc
1 {{'a': 91875, 'b': 455}{'a': 115, 'b': 267}} Robert
2 {{'a': 91955, 'b': 354}{'a': 255, 'b': 267}} George
3 {{'a': 91565, 'b': 987}} Peter
4 {{'a': 95925, 'b': 896}} Hans
我的目标:
id a b column3
0 91125 233 Marc
0 955 267 Marc
1 91875 455 Robert
1 115 267 Robert
2 91955 354 George
2 255 267 George
3 91565 987 Peter
4 95925 896 Hans
现在,我搜索了一种方法来做到这一点,并通过使用 pd.concat 找到了一个不错的 solution。
df = pd.concat([pd.DataFrame(x) for x in df['column2']],keys=df['id']).reset_index(level=1, drop=True).reset_index()
现在我的问题是 'column 3' 丢失并返回以下数据框:
id a b
0 91125 233
0 955 267
1 91875 455
1 115 267
2 91955 354
2 255 267
3 91565 987
4 95925 896 ´
你们知道我做错了什么吗?
非常感谢您,
问候
【问题讨论】:
标签: python pandas dictionary dataframe concatenation