将字典拆分为df中的各个列[重复]

Posted

技术标签:

【中文标题】将字典拆分为df中的各个列[重复]【英文标题】:Split dictionary into individual columns in a df [duplicate] 【发布时间】:2018-02-18 06:43:56 【问题描述】:

我有以下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】:

我认为更好的是使用:

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

但如果真的需要它(但 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

【讨论】:

是的,但是使用apply(pd.Series)会很慢,所以最好不要。 是的,但速度有点慢。最胖的是df['tests'].values.tolist() 啊,谢谢,没想到。

以上是关于将字典拆分为df中的各个列[重复]的主要内容,如果未能解决你的问题,请参考以下文章

将元素为字典的列拆分为多列[重复]

将 dict 元组拆分为数据框中的单个记录

python将pandas数字向量列拆分为多列[重复]

将数据框列拆分为 R 中的向量

将数据框中的 1 列拆分为 2 列 [重复]

将数据框转换为字典 [重复]