2024-05-13 19:38:20 发布
网友
我有一个带有字符串列的数据帧,我想在最后一次出现名称后删除所有行。你知道吗
first_name Andy Josh Mark Tim Alex Andy Josh Mark Tim Alex Andy Josh Mark
我想要的是在亚历克斯最后一次出现之后删除行,所以删除安迪、乔希和马克的行。你知道吗
我想在第一次出现之前用:df=df[(df.first_name== 'Alex').idxmax():]删除,但不知道如何删除最后一行。你知道吗
df=df[(df.first_name== 'Alex').idxmax():]
谢谢!你知道吗
mask
bfill
df[df['first_name'].mask(df['first_name'] != 'Alex').bfill().notna()] first_name 0 Andy 1 Josh 2 Mark 3 Tim 4 Alex 5 Andy 6 Josh 7 Mark 8 Tim 9 Alex
cumsum
idxmax
df.loc[:(df['first_name'] == 'Alex').cumsum().idxmax()] first_name 0 Andy 1 Josh 2 Mark 3 Tim 4 Alex 5 Andy 6 Josh 7 Mark 8 Tim 9 Alex
max
u = (df['first_name'] == 'Alex').shift().cumsum() df[u < u.max()] first_name 1 Josh 2 Mark 3 Tim 4 Alex 5 Andy 6 Josh 7 Mark 8 Tim 9 Alex
argmax
df.iloc[:len(df) - (df.first_name.to_numpy() == 'Alex')[::-1].argmax()] first_name 0 Andy 1 Josh 2 Mark 3 Tim 4 Alex 5 Andy 6 Josh 7 Mark 8 Tim 9 Alex
last_valid_index
df.loc[:df.where(df == 'Alex').last_valid_index()]
df.loc[:df.first_name.eq('Alex')[::-1].idxmax()]
df.iloc[:np.flatnonzero(df.first_name.eq('Alex')).max() + 1]
这太傻了!你知道吗
df[np.logical_or.accumulate(df.first_name.eq('Alex')[::-1])[::-1]]
mask
和bfill
cumsum
和idxmax
cumsum
和max
argmax
last_valid_index
选项3
选项4
选项5
这太傻了!你知道吗
相关问题 更多 >
编程相关推荐