首页 > 解决方案 > Pandas 根据条件提取行,但保留旧行索引

问题描述

根据特定条件提取行时,我丢失了旧的行索引。

我有一个带有数值列的 pandas 数据框,我根据以下条件提取所有行:

df = df.loc[df['column_name'] <= 1]

提取成功,但新数据框现在具有新的行索引。

如何保留旧索引?

标签: pythonpandasdataframeindexing

解决方案


我刚刚试图重现你的问题。我相信您正在尝试执行以下操作

df = pd.DataFrame({'column_name':[1,2,3,1,2,3,1,1,0,1]})
df.head(10)

产生如下输出

 column_name
0   1
1   2
2   3
3   1
4   2
5   3
6   1
7   1
8   0
9   1

一旦我运行你建议的代码df = df.loc[df['column_name']<=1],我就得到了这个df.head(10)

column_name
0   1
3   1
6   1
7   1
8   0
9   1

这似乎有较旧的索引。在 pandas 中,您需要重置索引以获取新索引,否则它不会自动执行。


推荐阅读