微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从数据框中删除几行? 以熊猫索引:

如何解决如何从数据框中删除几行? 以熊猫索引:

我有一个数据框(称为my_df1),并希望根据某些日期删除几行。如何创建没有日期“ 2020-05-01”和“ 2020-05-04”的新数据框(my_df2)?

我尝试了以下无效的方法,如下所示:

.empty

enter image description here

解决方法

问题似乎出在您的逻辑运算符上。 您应该在这里使用and而不是or,因为您必须选择所有非2020-05-012020-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 举报,一经查实,本站将立刻删除。