Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x TypeError:“(slice(None,59,None),slice(None,None,None))”是无效的键_Python 3.x_Pandas_Dataframe_Nan_Algorithmic Trading - Fatal编程技术网

Python 3.x TypeError:“(slice(None,59,None),slice(None,None,None))”是无效的键

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

我在下表中希望删除这些具有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: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