将字典拆分为df中的各个列

时间:2017-09-09 14:32:05

标签: pandas

我有以下df,其值为字典:

                    tests
SO4  {'Mon': 6, 'Tues': 6, 'Wed': 7}
CH3  {'Mon': 0, 'Tues': 8, 'Wed': 10}

我想获得所需的输出:

         0        1          2
SO4  'Mon': 6 'Tues': 6 'Wed': 7
CH3  'Mon': 0 'Tues': 8 'Wed': 10

我怎么能将字典拆分成单独的列?

我已经看到使用rsplit函数对字符串进行拆分但不确定如何在字典作为值的情况下应用它。

1 个答案:

答案 0 :(得分:1)

我认为更好用:

df = pd.DataFrame(df['tests'].values.tolist(), index=df.index)
print (df)
     Mon  Tues  Wed
SO4    6     6    7
CH3    0     8   10

但如果确实需要它(但是设计不是可排序的,那么可能会得到不同的输出):

df = df['tests'].astype(str).str.strip('{}').str.split(', ', expand=True)
print (df)
            0          1          2
SO4  'Mon': 6   'Wed': 7  'Tues': 6
CH3  'Mon': 0  'Wed': 10  'Tues': 8