如何解决如何从数据框中删除几行? 以熊猫索引:
我有一个数据框(称为my_df1),并希望根据某些日期删除几行。如何创建没有日期“ 2020-05-01”和“ 2020-05-04”的新数据框(my_df2)?
我尝试了以下无效的方法,如下所示:
.empty
解决方法
问题似乎出在您的逻辑运算符上。
您应该在这里使用and
而不是or
,因为您必须选择所有非2020-05-01
和2020-05-04
的行。
按位运算符不会短路,因此不会产生结果。
,您可以将isin
与否定符~
一起使用:
dates=['2020-05-01','2020-05-04']
my_df2 = mydf_1[~mydf_1['Date'].isin(dates)]
,
kanmaytacker解决了有关您的错误 AND 和 OR 的简短解释。 以下是一些其他建议:
以熊猫索引:
通过标签.loc
按索引.iloc
按标签也可以在没有.loc
的情况下工作,但是它比较慢,因为它是由链式操作组成的,而不是由嵌套循环组成的单个内部操作(请参见here)。另外,使用.loc
一次可以选择多个轴。
# example with rows. Same logic for columns or additional axis.
df.loc[(df['a']!=4) & (df['a']!=1),:] # ".loc" is the only addition
>>>
a b c
2 0 4 6
您的索引是一个布尔集。对于 numpy 也是这样,因此, pandas 也是如此。
(df['a']!=4) & (df['a']!=1)
>>>
0 False
1 False
2 True
Name: a,dtype: bool
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。