我有如下資料。每一行對應一種特定的顏色,與不同的數字相關聯:
| 顏色 | 編號 1 | 數量 2 |
|---|---|---|
| 紅色的 | 1 | 2 |
| 紅色的 | 1 | 吶 |
| 藍色 | 2 | 吶 |
| 藍色 | 2 | 3 |
| 黃色 | 1 | 4 |
| 黃色 | 1 | 吶 |
我想在num2列上使用前向填充,但只在相同顏色內使用前向填充。例如,如果前一行也是 ,則僅用前一行的填充num2第一blue行的。num2blue
預期結果:
| 顏色 | 編號 1 | 數量 2 |
|---|---|---|
| 紅色的 | 1 | 2 |
| 紅色的 | 1 | 2 |
| 藍色 | 2 | 吶 |
| 藍色 | 2 | 3 |
| 黃色 | 1 | 4 |
| 黃色 | 1 | 4 |
我嘗試了以下代碼:
for color in df['color'].unique():
df[df['color'] == color]['num2']=df[df['color'] == color]['num2'].fillna(method='ffill')
我也試過了inplace=True,還是不行。
uj5u.com熱心網友回復:
df = df.replace('na', np.nan)
df['num2'] = df.groupby('Color')['num2'].ffill()
輸出:
>>> df
Color num1 num2
0 red 1 2
1 red 1 2
2 blue 2 NaN
3 blue 2 3
4 yellow 1 4
5 yellow 1 4
uj5u.com熱心網友回復:
這是你想要的?
df[['Color']].join(df.groupby('Color').ffill())
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/374977.html
下一篇:你如何連接一個串列?
