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

问题描述

我有一个数据框(称为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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...