所以我有一个pandas数据框,里面有一组字典,我正在努力把它们转换成原始字典中的列。你知道吗
df3 = pd.DataFrame({'SomeCol':
["[{'Source': 'A', 'Value': '4.7'}]",
"[{'Source': 'A', 'Value': '8.2'},"
"{'Source': 'B', 'Value': '100%'}]",
"[{'Source': 'A', 'Value': '8.1'}, "
"{'Source': 'C', 'Value': '870'},"
"{'Source': 'B', 'Value': '98%'}]",
"[{}]"
],
'Other Stuff': ['One'
, 'Two', 'Three', 'Four'
]
})
我想得到以下结果
A B C
0 4.7 na na
1 8.2 100% na
2 8.1 98% 870
我试过了
data.map(eval).apply(pd.Series)
还有许多不同的主题
def f2(x):
df_r = pd.DataFrame()
for i in x:
df_r = pd.DataFrame.from_dict(x, orient='columns')
return df_r
dfa = pd.concat([df3, df3['SomeCol'].map(eval).apply(f2)])
我好像错过了一些重要的事情。我最接近的是
第一次调用f2函数的结果很接近
Source Value
0 A 4.7
0 A 8.2
1 B 100%
0 A 8.1
1 C 870
2 B 98%
但当我把他们连在一起的时候,我就搞得一团糟。如果你能从这里得到一些帮助,那会很有帮助的。在过去的两天里,我一直在用一种简单的方法和一种残忍的暴力进行斗争,neigher似乎能做到这一点。你知道吗
您可以使用
ast.literal_eval
创建字典,以便将字符串转换为dict:然后传递给} 删除
DataFrame
构造函数并通过^{NaN
的列:最后^{} 至原件:
相关问题 更多 >
编程相关推荐