TypeError: '(slice(None, 59, None), slice(None, None, None))' is an invalid key
TypeError: '(slice(None, 59, None), slice(None, None, None))' is an invalid key
我有下面的 table 我想删除这些具有 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
值直到第 1 行。 58
为此,我写了下面的代码。但是出现了上面的错误。
data.drop(data[:59,:],inplace= True)
print(data)
请帮帮我!
有多种选择:
按索引标签删除行。
df.drop(列表(范围(59)),轴=0,就地=真)
如果所选列中有 nans,则删除。
df.dropna(轴=0, 子集=['Real Upper Band'], inplace=True)
Select 行按索引标签保留 slice
df = df.loc[59:, :] # 59是索引中的标签,如果索引是日期则将59替换为对应的日期时间
Select 行以整数索引切片保留(类似于切片列表)
df = df.iloc[59:, :] # 59是0索引行号,不管df
上设置了什么索引
使用 .isna() 返回的 .loc 和布尔数组进行过滤
df = df.loc[~df['Real Upper Band'].isna(), :]
请记住,loc 和 iloc 在应用于数据帧时使用二维,建议使用完整切片 :
以避免歧义并根据文档提高性能 https://pandas.pydata.org/docs/user_guide/indexing.html
您想保留第 59-th 行,因此您可以 运行 的最短代码是:
data = data[59:]
我有下面的 table 我想删除这些具有 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
值直到第 1 行。 58
为此,我写了下面的代码。但是出现了上面的错误。
data.drop(data[:59,:],inplace= True)
print(data)
请帮帮我!
有多种选择:
按索引标签删除行。
df.drop(列表(范围(59)),轴=0,就地=真)
如果所选列中有 nans,则删除。
df.dropna(轴=0, 子集=['Real Upper Band'], inplace=True)
Select 行按索引标签保留 slice
df = df.loc[59:, :] # 59是索引中的标签,如果索引是日期则将59替换为对应的日期时间
Select 行以整数索引切片保留(类似于切片列表)
df = df.iloc[59:, :] # 59是0索引行号,不管df
上设置了什么索引使用 .isna() 返回的 .loc 和布尔数组进行过滤
df = df.loc[~df['Real Upper Band'].isna(), :]
请记住,loc 和 iloc 在应用于数据帧时使用二维,建议使用完整切片 :
以避免歧义并根据文档提高性能 https://pandas.pydata.org/docs/user_guide/indexing.html
您想保留第 59-th 行,因此您可以 运行 的最短代码是:
data = data[59:]