如果列中有某个值,如何删除数据帧行

2024-09-30 18:18:25 发布

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

我有一个熊猫数据框,其中一列director_name包含电影导演,另一列death_year,包含NaN或描述他们去世年份的浮点(例如:1996.00)。如何删除所有包含已死亡的控制器的行,如death_year列中的浮点所示

     nconst     director_name       birth_year       death_year 
0   nm0061671   Mary Ellen Bauder    1967.00            NaN     
1   nm0061865   Joseph Bauer          NaN             1996.00   
2   nm0062070   Bruce Baum           1981.00            NaN     
3   nm0062195   Axel Baumann          NaN             2015.00
4   nm0062798   Pete Baxter          1954.00            NaN 

因此,在数据框架中,第1行和第3行将被删除,因为Joseph Bauer于1996年去世,Axel Baumann于2015年去世。结果是一个仅由活着的控制器组成的数据框架:

     nconst     director_name       birth_year       death_year 
0   nm0061671   Mary Ellen Bauder    1967.00            NaN     
1   nm0062070   Bruce Baum           1981.00            NaN     
2   nm0062798   Pete Baxter          1954.00            NaN 


Tags: 数据name控制器nanyear浮点directorbirth
2条回答

我注意到当“死亡年”不是NaN时,出生年就是NaN

df.dropna(subset=['birth_year'], inplace=True)

您可以使用.loc.notna()

df.loc[df['birth_year'].notna()].reset_index(drop=True)

如果要按死亡年份删除行,请使用.isna()

df.loc[df['death_year'].isna()].reset_index(drop=True)

输出:

       nconst       director_name    birth_year   death_year 
0   nm0061671   Mary Ellen Bauder       1967.00          NaN     
1   nm0062070          Bruce Baum       1981.00          NaN     
2   nm0062798         Pete Baxter       1954.00          NaN

在这两种情况下,您粘贴的样本的输出相同。您可以为整个数据帧选择更好的方法

相关问题 更多 >