拆分字典的大熊猫列到多列

问题描述:

我与第一排下面的CSV作为标题:拆分字典的大熊猫列到多列

id,data 
a,"{'1': 0.7778, '3': 0.5882, '2': 0.9524, '4': 0.5556}" 
b,"{'1': 0.7778, '3': 0.5, '2': 0.7059, '4': 0.2222}" 
c,"{'1': 0.8182, '3': 0.2609, '2': 0.5882}" 

我需要得到像这样

id  1  2  3  4 
a 0.7778 0.9524 0.5882 0.5556 
b 0.7778 0.7059 0.5 0.2222 
c 0.8182 0.5882 0.2609 NaN 

的,其中键字典是列。

我该如何使用熊猫来做到这一点?

你可以用Python的ast模块做到这一点:

import ast 
import pandas as pd 

df = pd.read_csv('/path/to/your.csv') 
dict_df = pd.DataFrame([ast.literal_eval(i) for i in df.data.values]) 

>>> dict_df 
     1  2  3  4 
0 0.7778 0.9524 0.5882 0.5556 
1 0.7778 0.7059 0.5000 0.2222 
2 0.8182 0.5882 0.2609  NaN 

df = df.drop('data',axis=1) 
final_df = pd.concat([df,dict_df],axis=1) 

>>> final_df 
    id  1  2  3  4 
0 a 0.7778 0.9524 0.5882 0.5556 
1 b 0.7778 0.7059 0.5000 0.2222 
2 c 0.8182 0.5882 0.2609  NaN