gpt4 book ai didi

python - 如何将每组中的行从第一行切片到包含特定值的行?

转载 作者:行者123 更新时间:2023-11-28 19:46:29 25 4
gpt4 key购买 nike

我有一个这样的数据框:

df_1 = pd.DataFrame({
'ID' : ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C', 'C'],
'VAL' : ['shoes', 'flowers', 'chairs', 'apples', 'dice', 'shoes', 'apples',
'curtain', 'sand', 'socks', 'necklacs', 'tables', 'dishes', 'apples'],
'SEQ' : [0, 1, 2, 3, 4, 0, 1, 2, 3, 0, 1, 2, 3, 4]
})

ID VAL SEQ
0 A shoes 0
1 A flowers 1
2 A chairs 2
3 A apples 3
4 A dice 4
5 B shoes 0
6 B apples 1
7 B curtain 2
8 B sand 3
9 C socks 0
10 C necklacs 1
11 C tables 2
12 C dishes 3
13 C apples 4

我想对直到一个值的行进行切片,例如,对每个 ID 组中的所有行进行切片,直到 apple:

Out[110]: 
ID VAL SEQ
0 A shoes 0
1 A flowers 1
2 A chairs 2
3 A apples 3
4 B shoes 0
5 B apples 1
6 C socks 0
7 C necklacs 1
8 C tables 2
9 C dishes 3
10 C apples 4

最佳答案

idxmaxgroupbyconcat

pd.concat([
d.loc[:d.VAL.eq('apples').idxmax()]
for _, d in df_1.groupby('ID')
])

ID VAL SEQ
0 A shoes 0
1 A flowers 1
2 A chairs 2
3 A apples 3
5 B shoes 0
6 B apples 1
9 C socks 0
10 C necklacs 1
11 C tables 2
12 C dishes 3
13 C apples 4

关于python - 如何将每组中的行从第一行切片到包含特定值的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56755237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com