如何将Pandas DataFrame中字典的字符串表示转换为新的列?

oewdyzsn  于 2023-03-11  发布在  其他
关注(0)|答案(2)|浏览(160)

我在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'
有什么办法解决这个问题吗?

tkqqtvp1

tkqqtvp11#

您可以尝试使用ast

import ast
df['the_column']=df['the_column'].apply(ast.literal_eval)
0sgqnhkj

0sgqnhkj2#

除了公认的答案,我发现这也很有效

pd.concat([df, df.the_column.apply(json.loads).apply(pd.Series)], axis=1)

相关问题