Drop rows from dataframe based on date index gives "KeyError: "[''column_name'] not found in axis""
Drop rows from dataframe based on date index gives "KeyError: "[''column_name'] not found in axis""
我正在尝试创建一个新的数据框,排除包含两个日期的行,我的日期列是索引。
当我使用
DF2 = DF.drop(DF.loc['03/01/2018':'03/02/2018'])
我收到错误
KeyError: "['Column_name1' 'Column_name2'] not found in axis"
我已经尝试添加 axis = 0
来指定我想删除行,但仍然出现相同的错误
DF2 = DF.drop(DF.loc['03/01/2018':'03/02/2018'], axis = 0)
如果我尝试打印 'loc' 它 returns 预期的行
print(DF.loc['03/01/2018':'03/02/2018'])
因为你说你的日期是索引,所以当你使用 DF.loc['03/01/2018':'03/02/2018']
时,你定位的是 03/01/2018
和 03/02/2018
之间的行。
pandas.DataFrame.drop
接受索引或列标签,默认接受索引标签。你应该使用
DF2 = DF.drop(['03/01/2018', '03/02/2018'])
# or
DF2 = DF[~DF.index.isin('03/01/2018', '03/02/2018')]
你的声明只需要 .index
在最后。要像这样进行切片,您需要 loc,但是 drop
需要 index
作为输入。
DF2 = DF.drop(DF.loc['03/01/2018':'03/02/2018'].index)
如果这不起作用,那么您应该检查索引的格式(需要是您尝试访问它的方式的字符串)
如果索引是 datetime.date
格式,你可以这样做:
DF2 = DF.drop(DF.loc[dateimte.date(2018,3,1):datetime.date(2018,3,2)].index)
我正在尝试创建一个新的数据框,排除包含两个日期的行,我的日期列是索引。
当我使用
DF2 = DF.drop(DF.loc['03/01/2018':'03/02/2018'])
我收到错误
KeyError: "['Column_name1' 'Column_name2'] not found in axis"
我已经尝试添加 axis = 0
来指定我想删除行,但仍然出现相同的错误
DF2 = DF.drop(DF.loc['03/01/2018':'03/02/2018'], axis = 0)
如果我尝试打印 'loc' 它 returns 预期的行
print(DF.loc['03/01/2018':'03/02/2018'])
因为你说你的日期是索引,所以当你使用 DF.loc['03/01/2018':'03/02/2018']
时,你定位的是 03/01/2018
和 03/02/2018
之间的行。
pandas.DataFrame.drop
接受索引或列标签,默认接受索引标签。你应该使用
DF2 = DF.drop(['03/01/2018', '03/02/2018'])
# or
DF2 = DF[~DF.index.isin('03/01/2018', '03/02/2018')]
你的声明只需要 .index
在最后。要像这样进行切片,您需要 loc,但是 drop
需要 index
作为输入。
DF2 = DF.drop(DF.loc['03/01/2018':'03/02/2018'].index)
如果这不起作用,那么您应该检查索引的格式(需要是您尝试访问它的方式的字符串)
如果索引是 datetime.date
格式,你可以这样做:
DF2 = DF.drop(DF.loc[dateimte.date(2018,3,1):datetime.date(2018,3,2)].index)