我想做這樣的事情,但它會引發錯誤:
df.apply(lambda row: row / row[2] )
我的輸入資料如下:
| 指數 | Col1 | Col2 | Col3 |
|---|---|---|---|
| 8206731245 | 1829 | 8440.19 | 140 |
| 6523960772 | 12452 | 523065.36 | 138 |
| 2546262822 | 14889 | 144067.84 | 138 |
預期輸出:
| 指數 | Col1 | Col2 | Col3 |
|---|---|---|---|
| 8206731245 | 1829/140 | 8440.19/140 | 140/140 |
| 6523960772 | 12452/138 | 523065.36/138 | 138/138 |
| 2546262822 | 14889/138 | 144067.84/138 | 138/138 |
uj5u.com熱心網友回復:
使用類似的東西:
pd.concat([df[["Index"]],df.drop(columns=["Index"]).apply(lambda row: row / row["Col3"] ,axis=1)], axis=1)
輸出
Index Col1 Col2 Col3
8206731245 13.064286 60.287071 1.0
6523960772 90.231884 3790.328696 1.0
2546262822 107.891304 1043.969855 1.0
uj5u.com熱心網友回復:
df.apply()默認情況下在列上完成。用于axis=1應用于行。
df.apply(lambda row: row / row[2], axis=1)
Col1 Col2 Col3
Index
8206731245 13.064286 60.287071 1.0
6523960772 90.231884 3790.328696 1.0
2546262822 107.891304 1043.969855 1.0
(我假設您的“索引”列代表索引。)
uj5u.com熱心網友回復:
代替apply,您可以使用divonaxis=0來利用矢量化除法:
out = df[['Index']].join(df.drop(columns='Index').div(df['Col3'], axis=0))
輸出:
Index Col1 Col2 Col3
0 8206731245 13.064286 60.287071 1.0
1 6523960772 90.231884 3790.328696 1.0
2 2546262822 107.891304 1043.969855 1.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/455932.html
