簡體   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