我有一个 pandas 数据框,如下所示:
ticker account value date
aa assets 100,200 20121231, 20131231
bb liabilities 50, 150 20141231, 20131231
我想拆分 df['value']
和 df['date']
,以便数据框如下所示:
ticker account value date
aa assets 100 20121231
aa assets 200 20131231
bb liabilities 50 20141231
bb liabilities 150 20131231
非常感谢任何帮助。
最佳答案
你可以先split
列,通过 stack
创建系列
并通过 strip
删除空格:
s1 = df.value.str.split(',', expand=True).stack().str.strip().reset_index(level=1, drop=True)
s2 = df.date.str.split(',', expand=True).stack().str.strip().reset_index(level=1, drop=True)
然后concat
Series
到 df1
:
df1 = pd.concat([s1,s2], axis=1, keys=['value','date'])
删除旧列值
和日期
和join
:
print (df.drop(['value','date'], axis=1).join(df1).reset_index(drop=True))
ticker account value date
0 aa assets 100 20121231
1 aa assets 200 20131231
2 bb liabilities 50 20141231
3 bb liabilities 150 20131231
关于pandas - 将 pandas 数据框中的多列拆分为行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38651008/