提问者:小点点

熊猫-如何从唯一值创建新列并按唯一值分组?[重复]


我有这样的数据框:

import pandas as pd
data = [
        [1, 'A', 10], [1, 'B', 20], [1, 'C', 30],
        [2, 'A', 30], [2, 'B', 20], [2, 'C', 10],
        [3, 'A', 20], [3, 'B', 40], [3, 'C', 20]
       ]

df = pd.DataFrame(data, columns = ['Day', 'Company', 'Profit']) 
df 

我想将此表转换为:

  • 每个唯一的公司名称成为一个新列
  • 剩余数据按天分组

如何像这样将数据帧转换为新的数据帧?


共2个答案

匿名用户

尝试使用透视表:

df_out = pd.pivot(df, index='Day', columns="Company", values="Profit").reset_index()

匿名用户

您可以使用pivot_table:

df_pivot = df.pivot_table(index='Day', columns='Company', values='Profit')

输出:

Company   A   B   C
Day                
1        10  20  30
2        30  20  10
3        20  40  20