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)