繁体   English   中英

熊猫 - get_dummies 乘以数量

[英]pandas - get_dummies multiplied by quantities

我有一个pandas.DataFrame与Stockcode及数量:

>>>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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM