我想在行中的某個值之后找到第一次出現的值。
測驗資料框:
df = pd.DataFrame({'part': ["Toyota", "basic", "upgraded", "Skoda", "basic", "upgraded", "VW", "basic", "upgraded"],
'id': ["", 1, 2, "", 4, 5, "", 6, 7]})
part id
0 Toyota
1 basic 1
2 upgraded 2
3 Skoda
4 basic 4
5 upgraded 5
6 VW
7 basic 6
8 upgraded 7
我正在尋找“斯柯達”之后的“升級”行中的值 - 因此為 5。
任何提示如何在 Pandas 資料框中執行此操作?
謝謝你。
uj5u.com熱心網友回復:
您可以使用帶有掩碼的布爾索引:
# locate "upgraded" items
m1 = df['part'].eq('upgraded')
# mask values after the first "Skoda"
m2 = df['part'].eq('Skoda').cummax()
# find all "upgraded" that are after first "Skoda"
# and slice first occurrence
df[m1&m2].iloc[0]
輸出:
part upgraded
id 5
Name: 5, dtype: object
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/454554.html
