pandas - 将 pandas 数据框中的多列拆分为行

标签 pandas join dataframe split multiple-columns

我有一个 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 Seriesdf1:

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/

相关文章:

python pandas 合并两个数据框并处理重复项?

python - Pandas :Dataframe.replace() 与正则表达式

mysql - 如何将2行结果合并为1行

mysql - SQL join 和 count do net 把它放在一起

python - Pandas:使用多个正则表达式比较两列中的行并将正确的行复制到自己的列中

python - 如何仅基于外部索引转置多级 Pandas 数据框

r - 计算数据子集的统计信息

python - 创建与每一行具有相同列表的新 pandas 列?

python - 按列分组以查找另一列中最频繁的值?

sql - 具有多个 JOINS 和 GROUP BY CLAUSE 的查询中的 COUNT