panda删除前n行,直到满足列上的条件

2024-09-30 03:23:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从数据框中删除一些行。实际上,我想删除第一行n,而n应该是某个条件的行号。我希望dataframe从包含x-y valuesxEnd,yEnd的行开始。所有先前的行应从数据帧中删除。不知怎么的,我没有找到解决办法。这就是我目前所掌握的。在

示例:

import pandas as  pd
xEnd=2
yEnd=3
df = pd.DataFrame({'x':[1,1,1,2,2,2], 'y':[1,2,3,3,4,3], 'id':[0,1,2,3,4,5]})
n=df["id"].iloc[df["x"]==xEnd and df["y"]==yEnd]
df = df.iloc[n:]

我希望我的代码从

^{pr2}$

{'x':[2,2,2], 'y':[3,4,3], 'id':[3,4,5]}

Tags: 数据importid示例dataframepandasdf条件
2条回答

使用cummax

df[((df['x'] == xEnd) & (df['y'] == yEnd)).cummax()]
Out[147]: 
   id  x  y
3   3  2  3
4   4  2  4
5   5  2  3
  • 使用&代替and
  • 使用loc代替iloc。您可以使用iloc,但它可能会根据索引而中断
  • 使用idxmax找到第一个位置

#             I used idxmax to find the index |
#                                             v
df.loc[((df['x'] == xEnd) & (df['y'] == yEnd)).idxmax():]
# ^
# | finding the index goes with using loc

   id  x  y
3   3  2  3
4   4  2  4
5   5  2  3

这是一个iloc变化

^{pr2}$

相关问题 更多 >

    热门问题