如何基于行值在熊猫中创建新列?

时间:2020-03-18 21:34:48

标签: python pandas pivot transform shift

我有一个熊猫数据框,其中包含有关汽车销售人员以及每个销售人员销售多少个特定汽车品牌的信息。我想将“品牌”列中的行转换为自己的列,并以该“品牌”的价格出售。

我的起始数据帧如下所示:

data = [['james', 'Ford', 10],
        ['james', 'Honda', 12],
        ['james', 'Lexus', 17],
        ['james', 'Acura', 3],
        ['ian', 'Ford', 7],
        ['julie', 'Lexus', 3],
        ['julie', 'Toyota', 23],
        ['julie', 'Acura', 8],
        ['john', 'Ford', 8],
        ['john', 'Lexus', 9],
        ['juan', 'Honda', 11],
        ['juan', 'Toyota', 4]]

# Create the pandas DataFrame 
df = pd.DataFrame(data, columns = ['Sales Person Name', 'Brand','Count']) 

我想要一个数据框,该数据框可以容纳所有汽车品牌,并将它们转换为自己的列,并将其计数作为行。

最终看起来像这样:

data_new = [['james',10,12,17,3,0],
            ['ian',7,0,0,0,0],
            ['julie',0,0,3,0,23],
            ['john',8,0,9,0,0],
            ['juan',0,11,0,0,4]]
# Create the pandas DataFrame 
df_new = pd.DataFrame(data_new, columns = ['Dealer Name', 'Ford','Honda','Lexus','Acura','Toyota']) 
df_new

我尝试了以下方法:

new_df = df.set_index(['Sales Person Name','count'])['Brand'].unstack().reset_index()

但这给我一个错误。我认为我可能需要转置或变换方法,但不确定如何进行。谢谢。

0 个答案:

没有答案