Python 熊猫-获取虚拟对象乘以数量

Python 熊猫-获取虚拟对象乘以数量,python,pandas,Python,Pandas,我有一个带有库存代码和数量的pandas.DataFrame: >>>df StockCode Quantity 0 85123A 6 1 71053 6 2 84406B 8 3 84029G 6 4 84029E 6 我正在寻找一个解决方案,将熊猫。get_dummies()乘以数量 我期望的输出应该如下所示: >>>pd.get_dummies(df['StockCod

我有一个带有库存代码和数量的
pandas.DataFrame

>>>df
    StockCode   Quantity
0   85123A      6
1   71053       6
2   84406B      8
3   84029G      6
4   84029E      6
我正在寻找一个解决方案,将
熊猫。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”的解决方案

有人知道有没有更好的方法来矫正这些假人吗

谢谢

拉里

修复你的代码

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]
这同样有效

df.StockCode.str.get_dummies().mul(df.Quantity, axis=0)
参考文献


这两种解决方案的混合非常有效-->
df.pivot(columns='StockCode',values='Quantity')。fillna(0)
@LaurentR-aha,你明白了:-)快乐编码
df.StockCode.str.get_dummies().mul(df.Quantity, axis=0)