gpt4 book ai didi

python - pandas - get_dummies 乘以数量

转载 作者:太空宇宙 更新时间:2023-11-03 14:19:48 24 4
gpt4 key购买 nike

我有一个带有股票代码和数量的pandas.DataFrame:

>>>df
StockCode Quantity
0 85123A 6
1 71053 6
2 84406B 8
3 84029G 6
4 84029E 6

我正在寻找一种解决方案,将 pandas.get_dummies() 乘以数量。

我期望的输出应该是这样的:

>>>pd.get_dummies(df['StockCode']) ... --> * df['Quantity']
71053 84029E 84029G 84406B 85123A
0 0 0 0 0 6
1 6 0 0 0 0
2 0 0 0 8 0
3 0 0 6 0 0
4 0 6 0 0 0

我可以做一个 for 循环来将所有虚拟对象乘以数量,但我希望有一个更“Pythonic”的解决方案。

有谁知道是否有更好的方法来获得这些修正后的假人?

谢谢

拉里

最佳答案

df.reset_index().pivot('index','StockCode','Quantity').fillna(0)
Out[93]:
StockCode 71053 84029E 84029G 84406B 85123A
index
0 0.0 0.0 0.0 0.0 6.0
1 6.0 0.0 0.0 0.0 0.0
2 0.0 0.0 0.0 8.0 0.0
3 0.0 0.0 6.0 0.0 0.0
4 0.0 6.0 0.0 0.0 0.0

修复您的代码

pd.get_dummies(df['StockCode']).mul(df.Quantity,0)
Out[97]:
71053 84029E 84029G 84406B 85123A
0 0 0 0 0 6
1 6 0 0 0 0
2 0 0 0 8 0
3 0 0 6 0 0
4 0 6 0 0 0

pd.get_dummies(df['StockCode']).values*df.Quantity.values[:,None]

关于python - pandas - get_dummies 乘以数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48015421/

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