gpt4 book ai didi

python - 重置索引后无法过滤索引列中包含特定值的行

转载 作者:太空宇宙 更新时间:2023-11-04 09:39:10 25 4
gpt4 key购买 nike

我正在整理多个计划的数据,其中包含计划阶段的信息,P(Preliminary) 或 F(Final)。我正在使用 examples 中显示的方法在 Pandas 文档中。

df1 = pd.read_excel('FilePath', sheetname = 'ForFilter')
df1


landuse_SUB_ID TYPE RECD_DATE PHASE LAND_USE CPACTIONDA
0 24 1 2000-04-07 P ROW 2000-05-04
1 24 1 2000-04-07 P NONE 2000-05-04
2 25 1 2000-08-10 P COMM 2000-09-08
3 34 1 2000-04-14 F REC 2000-04-14
4 34 1 2000-04-14 F SFD 2000-04-14
5 35 1 2000-01-20 P NONE 2000-02-02
6 42 1 2000-04-04 P SFD 2000-05-01
7 42 1 2000-12-06 P SFD 2001-01-03
8 43 1 2000-09-07 P NONE 2000-09-21
9 51 1 2000-11-10 P NONE 2000-11-28
10 53 1 2000-02-22 F SFD 2000-02-22

在尝试了示例中的方法(使用likeregex)之后,在我看来这些方法只能过滤索引列中的值。因此我更改了索引:

df1_filter1 = df1.set_index('PHASE')


landuse_SUB_ID TYPE RECD_DATE LAND_USE CPACTIONDA
PHASE
P 24 1 2000-04-07 ROW 2000-05-04
P 24 1 2000-04-07 NONE 2000-05-04
P 25 1 2000-08-10 COMM 2000-09-08
F 34 1 2000-04-14 REC 2000-04-14
F 34 1 2000-04-14 SFD 2000-04-14
P 35 1 2000-01-20 NONE 2000-02-02
P 42 1 2000-04-04 SFD 2000-05-01
P 42 1 2000-12-06 SFD 2001-01-03
P 43 1 2000-09-07 NONE 2000-09-21
P 51 1 2000-11-10 NONE 2000-11-28
F 53 1 2000-02-22 SFD 2000-02-22

现在数据框使用Phase作为索引,我使用like方法过滤df1_filter1:

df1_filter1.filter(like = 'F', axis = 0)

我得到了错误

"ValueError: cannot reindex from a duplicate axis"

这对我来说似乎是一个非常简单的操作,所以我只是想知道我做错了什么导致了这个错误。对于我的问题,最好的方法是什么(最少的步骤和最干净的代码)。

最佳答案

filter 可能直觉上感觉是正确的功能,但您几乎可以肯定应该使用 loc过滤您的数据(在上面的示例链接中,它在一个大黄色框中显示“另请参阅:loc”)。对于这个简单的示例,您还可以使用 bool 索引:

>>> df1.loc[df1['PHASE'] == 'F']  # or boolean indexing via df1[df1['PHASE'] == 'F']
landuse_SUB_ID TYPE RECD_DATE PHASE LAND_USE CPACTIONDA
3 34 1 2000-04-14 F REC 2000-04-14
4 34 1 2000-04-14 F SFD 2000-04-14
10 53 1 2000-02-22 F SFD 2000-02-22

关于python - 重置索引后无法过滤索引列中包含特定值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52321121/

25 4 0
文章推荐: javascript 设置超时();不适用于 linux (firefox)
文章推荐: javascript - 不断刷新/接收输出
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com