我想删除一些符合特定条件的行,但即使第一行符合该条件,我也不想删除第一行.
我尝试使用df.drop函数删除行,但如果第一行符合该条件,它将擦除第一行.我不要那个.
数据看起来像这样:
Column1 Column2 Column3 1 3 A 2 1 B 3 3 C 4 1 D 5 1 E 6 3 F
我想这样做,如果一行在column2中的值为3,然后删除它.
我希望新数据是这样的(在删除之后但保留第一行,即使第一行在第2列中的值为3):
Column1 Column2 Column3 1 3 A 2 1 B 4 1 D 5 1 E
解决方法
您可以将“保留第一行”作为删除/保留行的条件的一部分.
保持行的条件是< ORIGINAL CONDITION>或者<保持第一行的条件>.在代码中,这是
# (condition to drop 3) | (condition to keep 0th row) df[(df['Column2'] != 3) | (df.index == 0)] Column1 Column2 Column3 0 1 3 A 1 2 1 B 3 4 1 D 4 5 1 E
相反,使用DeMorgan定律,删除行的条件是(df [‘Column2’] == 3)& (df.index!= 0).然后我们将条件反转以获得我们的预期输出,
df[~((df['Column2'] == 3) & (df.index != 0))] Column1 Column2 Column3 0 1 3 A 1 2 1 B 3 4 1 D 4 5 1 E
假设您的索引是RangeIndex,这些工作.如果不是,请使用pd.RangeIndex(len(df))== 0作为第二个条件.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。