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

ge0*_*rge 2 pandas

我有以下df值是字典:

                    tests
SO4  {'Mon': 6, 'Tues': 6, 'Wed': 7}
CH3  {'Mon': 0, 'Tues': 8, 'Wed': 10}
Run Code Online (Sandbox Code Playgroud)

我想获得所需的输出:

         0        1          2
SO4  'Mon': 6 'Tues': 6 'Wed': 7
CH3  'Mon': 0 'Tues': 8 'Wed': 10
Run Code Online (Sandbox Code Playgroud)

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

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

jez*_*ael 5

我认为更好的是使用:

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

但是如果真的需要它(但 dicts 是设计不可排序的,所以可能会得到不同的输出):

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
Run Code Online (Sandbox Code Playgroud)