如何按列表删除数据框中的多行?
How can I drop multiple rows in my dataframe by list?
我想根据值列表删除一堆行。具体来说,我有一份棒球运动员从 1999 年到 2021 年的统计数据列表。如果一名球员在 1999 年打过球,我想删除他们所有的行。例如,如果他们在 1999 年、2000 年和 2001 年比赛,我想删除所有这三行。
我使用 df[df['Season'].isin([1999])]['Name'] 确定玩家列表,它生成了一个数据帧(可以变成一个列表如果需要的话)。
我现在如何获取原始数据框并根据该名称列表删除所有行?
以下代码删除所有参加特定赛季的球员;
原DF:
Season Player
0 2000 B
1 1993 B
2 1997 C
3 1994 A
4 1997 C
5 2000 F
6 1998 D
7 1997 C
8 1999 E
使用下面的代码,我们可以消除行
a = df[df['Season'].isin([2000])]['Player'].values
df = df.loc[~df['Player'].isin(a), :]
df
输出:
Season Player
2 1997 C
3 1994 A
4 1997 C
6 1998 D
7 1997 C
8 1999 E
我想根据值列表删除一堆行。具体来说,我有一份棒球运动员从 1999 年到 2021 年的统计数据列表。如果一名球员在 1999 年打过球,我想删除他们所有的行。例如,如果他们在 1999 年、2000 年和 2001 年比赛,我想删除所有这三行。
我使用 df[df['Season'].isin([1999])]['Name'] 确定玩家列表,它生成了一个数据帧(可以变成一个列表如果需要的话)。
我现在如何获取原始数据框并根据该名称列表删除所有行?
以下代码删除所有参加特定赛季的球员;
原DF:
Season Player
0 2000 B
1 1993 B
2 1997 C
3 1994 A
4 1997 C
5 2000 F
6 1998 D
7 1997 C
8 1999 E
使用下面的代码,我们可以消除行
a = df[df['Season'].isin([2000])]['Player'].values
df = df.loc[~df['Player'].isin(a), :]
df
输出:
Season Player
2 1997 C
3 1994 A
4 1997 C
6 1998 D
7 1997 C
8 1999 E