【问题标题】:Pandas filtering based on column value基于列值的 Pandas 过滤
【发布时间】:2021-04-30 15:31:41
【问题描述】:

我是 Pandas 和 Python 的新手,所以我可能有非常琐碎的问题。

我有这样的数据框:

                       0  1  2  3  4  5  6  7  8  9 10 11
0                5_TKE12  0  1  0  0  2  0  1  0  0  0  0
1              1_aeroD15  0  1  0  0  0  0  1  0  1  0  0
2                    6D9  1  2  1  0  0  0  0  0  0  0  1
3               24_RSG24  0  0  0  2  2  0  0  0  0  0  0
4     Other imm.as_SHF12  0  1  1  0  2  0  0  0  0  0  0
...                  ... .. .. .. .. .. .. .. .. .. .. ..
2078               45E72  0  0  2  1  1  0  0  0  0  0  0
2079            23_TKC61  0  0  0  0  0  0  0  0  0  0  0
2080          14_aeroD10  1  1  0  0  0  0  0  0  1  0  0
2081            16_TKD11  0  1  1  1  0  0  0  0  1  0  0
2082    Sensativite_SHF6  0  2  2  2  2  0  1  0  0  0  0

如果 value = 1,我需要过滤最后一列 (#11),并且我需要将第一列 (#0) 作为结果 因此,根据我的示例,我将拥有 6D9

我尝试过滤数据框,但没有帮助。


我试过了:

filtered_ind = [1]
R4 = R4[:,R4[11].isin(filtered_ind)] #R4 is data Frame for table I showed above
print(R4)

我得到了这个答案:

TypeError: '(slice(None, None, None), 0       False
1       False
2       False
3       False
4       False
        ...  
2078    False
2079    False
2080    False
2081    False
2082    False
Name: 11, Length: 2083, dtype: bool)' is an invalid key

【问题讨论】:

  • df.loc[df[11] == 1, 0].
  • 假设您要使用 filtered_ind 检查列 11 中的多个值,使您的代码工作的最小更改是:R4.loc[R4[11].isin(filtered_ind), 0],根据 @00 的评论。

标签: python pandas filtering


【解决方案1】:

你可以像这样过滤:

df[0][df[11]==1]

当#11 为一时将给出第一列值

【讨论】:

  • 我试过你的解决方案,但没有帮助:我有同一张桌子:(
  • 您能分享所需的输出吗?因为根据您的示例,此解决方案给出了 69D Do you want to change table?如果您愿意,此行不会更改表格,您可以将其分配给另一个变量。
  • 我按照您的建议添加了过滤器:R4[0][R4[11]==1] 我得到了这个:Series([], Name: 0, dtype: object) 作为结果如果第 11 列中的值为 1,我需要第 0 列的值
  • 那说明你的第11列没有1。
  • 不可能。我知道有值“1”我检查了第 10 列的“1”值(有很多值“1”,信息 100%)。结果是一样的
【解决方案2】:

麻烦在一开始:

我应该使用字符串“1”:

filtered_ind = ['1'] #in my previous code was [1] :(
## and after that I used one of suggested answers:
R4 = R4.loc[R4[11].isin(filtered_ind), 0]

感谢大家的帮助:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-17
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多