我有一個 pandas 資料框(稱為result),它看起來像這樣:
| 事件_1 | 事件_2 | 事件_3 |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 德爾 | 1 |
| 1 | 1 | 1 |
而且我想洗掉包含 value 的行之前的所有行 Del。所以結果看起來像這樣:
| 事件_1 | 事件_2 | 事件_3 |
|---|---|---|
| 1 | 德爾 | 1 |
| 1 | 1 | 1 |
我嘗試修改我在其他一些帖子中找到的一些代碼,但它似乎并沒有解決問題(它實際上運行了很多,并且永遠不會停止運行)。
result.groupby('event_1').apply(lambda x: x.loc[(x.event_2 == "Del").idxmax():,:]).reset_index(drop=True)
uj5u.com熱心網友回復:
您可以使用布爾切片:
df[df['event_2'].eq('Del').cummax()]
uj5u.com熱心網友回復:
如果我們有 2 次或更多次出現,并且您希望考慮最后一次出現,您可以嘗試以下操作:
例子 :
A=[1,2,3,'del',5,6,7]
B=[1,2,3,4,5,6,7]
C=[1,2,'del',4,5,6,7]
df=pd.DataFrame([B,A,C]).T
df.columns=list('ABC')
df
A B C
0 1 1 1
1 2 2 2
2 3 3 del
3 4 del 4
4 5 5 5
5 6 6 6
6 7 7 7
ind=df[df.eq('del').any(1)].index.max() df=df.iloc[ind:].reset_index(drop=True)df
A B C
0 4 del 4
1 5 5 5
2 6 6 6
3 7 7 7
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/415698.html
標籤:
上一篇:使用groupby計算聚合平均值
