是否有一种简单的方法可以执行以下操作:我有一个包含以下列的熊猫数据框:日期(按天),公司,销售。我想创建一个数据框,每个公司的销售额为一列;即,新列应为:日期,公司1销售,公司2销售,公司3销售。我想根据公司列中的名称命名列。
我做了:df.groupby(['company'])
并认为我可以为组中的每个元素进行外连接。但这似乎不合时宜?似乎应该有一个更简单的方法来做到这一点?谢谢!非常感谢任何帮助。
一个例子是:
date | company | sales
1/1/2017 | AAA | 100
1/1/2017 | BBB | 200
1/1/2017 | CCC | 300
我想将其转换为:
date | AAA | BBB | CCC
1/1/2017 | 100 | 200 | 300
答案 0 :(得分:1)
选项1
set_index
+ unstack
df.set_index(['date', 'company']).sales.unstack().reset_index()
company date AAA BBB CCC
0 1/1/2017 100 200 300
选项2
pivot
df.pivot('date', 'company', 'sales').reset_index()
company date AAA BBB CCC
0 1/1/2017 100 200 300