Python 3.x TypeError:“(slice(None,59,None),slice(None,None,None))”是无效的键
我在下表中希望删除这些具有NaN值的行Python 3.x TypeError:“(slice(None,59,None),slice(None,None,None))”是无效的键,python-3.x,pandas,dataframe,nan,algorithmic-trading,Python 3.x,Pandas,Dataframe,Nan,Algorithmic Trading,我在下表中希望删除这些具有NaN值的行 date Open ... Real Lower Band Real Upper Band 0 2020-07-08 08:05:00 2.1200 ... NaN NaN 1 2020-07-08 09:00:00 2.1400 ... NaN NaN 2 2020-07-08 09
date Open ... Real Lower Band Real Upper Band
0 2020-07-08 08:05:00 2.1200 ... NaN NaN
1 2020-07-08 09:00:00 2.1400 ... NaN NaN
2 2020-07-08 09:30:00 2.1800 ... NaN NaN
3 2020-07-08 09:35:00 2.2000 ... NaN NaN
4 2020-07-08 09:40:00 2.1710 ... NaN NaN
5 2020-07-08 09:45:00 2.1550 ... NaN NaN
这些NaN值在第58行之前都是有效的
为此,我编写了以下代码。但出现了上述错误
data.drop(data[:59,:],inplace= True)
print(data)
请帮帮我 有许多选项可供选择: 按索引标签删除行 df.droplistrange59,轴=0,在位=True 如果在选定列中出现N,则删除N df.dropnaaxis=0,subset=['Real Upper Band',inplace=True 按索引标签切片选择要保留的行 df=df.loc[59:,:]59是索引中的标签,如果索引是日期,则用相应的日期时间替换59 按整数索引切片选择要保留的行,类似于切片列表 df=df.iloc[59:,:]59是0索引行号,无论在df上设置了什么索引 带有.loc和由.isna返回的布尔数组的筛选器 df=df.loc[~df['Real Upper Band'].isna,:]
请记住,loc和iloc在应用于数据帧时使用两个维度,建议使用完整切片:为了避免歧义并根据文档提高性能,您希望从第59行开始保留行,因此可以运行的最短代码是:
data = data[59:]
这些NaN在最后3列中。drop是按索引而不是数据。您也可以使用带有阈值的dropna