将字典拆分为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中的各个列[重复]的主要内容,如果未能解决你的问题,请参考以下文章