将多列拆分为 pandas 数据框中的行
问题描述:
我有一个熊猫数据框,如下所示:
I have a pandas dataframe as follows:
ticker account value date
aa assets 100,200 20121231, 20131231
bb liabilities 50, 150 20141231, 20131231
我想拆分 df['value']
和 df['date']
以便数据框看起来像这样:
I would like to split df['value']
and df['date']
so that the dataframe looks like this:
ticker account value date
aa assets 100 20121231
aa assets 200 20131231
bb liabilities 50 20141231
bb liabilities 150 20131231
非常感谢任何帮助.
答
您可以先split
列,通过 stack
并通过 strip
:
You can first split
columns, create Series
by stack
and remove whitespaces by 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'])
删除旧列 value
和 date
和 join
:
Remove old columns value
and date
and 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