gpt4 book ai didi

python - 根据分类列和来自另一列的值创建列

转载 作者:行者123 更新时间:2023-12-05 02:09:52 26 4
gpt4 key购买 nike

我的数据是这样的

Weight  Sex
91.0 male
91.0 male
131.0 female
128.0 female
132.0 female
150.0 male

我想要类似的东西

male   female
91.0 0
91.0 0
0 131.0
0 128.0
0 132.0
150.0 0

如何在不使用 pd.wide_to_long() 函数的情况下实现这一目标。

最佳答案

使用DataFrame.pivot没有 index 参数,然后用 DataFrame.fillna 替换缺失值:

df = df.pivot(columns='Sex', values='Weight').fillna(0)
print (df)
Sex female male
0 0.0 91.0
1 0.0 91.0
2 131.0 0.0
3 128.0 0.0
4 132.0 0.0
5 0.0 150.0

另一种解决方案 DataFrame.set_indexSeries.unstack :

df = df.set_index('Sex', append=True)['Weight'].unstack(fill_value=0)
print (df)
Sex female male
0 0.0 91.0
1 0.0 91.0
2 131.0 0.0
3 128.0 0.0
4 132.0 0.0
5 0.0 150.0

如果列的顺序很重要,添加子集:

df = df.pivot(columns='Sex', values='Weight').fillna(0)[['male','female']]
print (df)
Sex male female
0 91.0 0.0
1 91.0 0.0
2 0.0 131.0
3 0.0 128.0
4 0.0 132.0
5 150.0 0.0

关于python - 根据分类列和来自另一列的值创建列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59466266/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com