我在Pandas DataFrame列中有一个字典的字符串表示形式,
>>> df['the_column']
0 "{'a': 1., 'b': 2., 'c':3.}"
1 "{'a': 4., 'b': 5., 'c':6.}"
2 "{'a': 7., 'b': 8., 'c': 9.}"
3 "{'a': 10., 'b': 11., 'c':12.}"
...
我想将每个键附加到现有DataFrame的列中,怎么可能?
我尝试过这样的事情:
list_of_new_col = [json.loads(c) for c in df['the_column']]
# resulting list of dictionary
# convert it to pandas DataFrame
# and then concat with the existing DataFrame
但是我明白了
TypeError: the JSON object must be str, bytes or bytearray, not 'float'
关于如何解决这个问题的任何想法?
谢谢。
注意:我错了,请检查接受的答案和评论以获取详细信息。
答案 0 :(得分:4)
您可以尝试使用ast
df['the_column']=df['the_column'].apply(ast.literal_eval)
答案 1 :(得分:0)
除了接受的答案外,我发现这也有效
pd.concat([df, df.the_column.apply(json.loads).apply(pd.Series)], axis=1)