如何基于行值在熊猫中创建新列? [重复]

问题描述 投票:0回答:1

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

我的起始数据帧如下:

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()

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

python pandas pivot transform shift
1个回答
0
投票

尝试:

df.pivot_table(index='Sales Person Name', columns='Brand').fillna(0)

© www.soinside.com 2019 - 2024. All rights reserved.