PythonPandas航向位置成功,但删除的行仍然是

2024-06-16 10:19:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个普通的csv文件导入为panda df。然后我使用下面的代码选择从df中删除一些行。在

df.loc[:,"Tobacco"].fillna('No involvement', inplace=True)

df = df[df.loc[:,"Tobacco"] == 'No involvement']

Spyder显示数据框的行数从8000行下降到7000行(删除了1000行)。我查一下len(df)是7000。但是,我双击Spyder变量窗口来查看df,删除的行仍然存在,它们在df的末尾被组合在一起(索引7000到8000)。在

这使我无法继续下一部分,当我需要使用len(df)来循环df时,它不会影响这1000行,而且我不知道如何删除它们(我也尝试使用索引7000到8000删除它们)。在

我已经在anacondaspyder上用python3在Windows上、Linux上、PyCharm在Linux上、原生Python在Linux上进行了测试,得到了相同的错误。在

我也试过了

^{pr2}$

编辑:我收到了这个警告消息(有时会有警告,但有时我再次运行它却没有警告)

C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\generic.py:3660: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy self._update_inplace(new_data)


Tags: csvtheno警告pandasdflenlinux
1条回答
网友
1楼 · 发布于 2024-06-16 10:19:50

我不能复制这个。尝试下面的代码,看看这个代码是否也发生了同样的情况。在

df = pd.DataFrame({'A':[4,6,7,65,75,645,5,7,5,75,5]})
df.iloc[3:8]=np.nan # set sum values as NaN to simulate the NaN
print(df.shape)

df.loc[:,"A"].fillna('No involvement', inplace=True)
print(df.shape)

df = df[df.loc[:,"A"] == 'No involvement']
print(df.shape)
print(len(df))`

相关问题 更多 >