【问题标题】:Python Alphanumeric and Character ComparisonPython 字母数字和字符比较
【发布时间】:2019-02-03 02:58:58
【问题描述】:

我有一个 CSV 数据集,我正在尝试选择“INCOME”列等于“50K”的所有行

这是我所拥有的,但它只返回没有任何行的列名。

df.loc[df.INCOME == '>50K',:]

我的代码基本上说选择“df”数据集的 INCOME 列等于 '>50K' 的所有行

有什么帮助吗?

【问题讨论】:

  • 检查 INCOME 列中是否有空格

标签: python pandas jupyter data-analysis


【解决方案1】:

你可以用

df.INCOME=df.INCOME.str.strip()
df.loc[df.INCOME == '>50K',:]

【讨论】:

  • @David 如果对您有用,请考虑将解决方案标记为已接受的答案。谢谢
【解决方案2】:

@Wen 已经展示了一个很好的答案,但是您可以尝试使用元素运算符的替代方法,就像您最初在 POST 中希望的那样。

示例数据框:

>>> df
   NUM INCOME  CAP
0    1    20k    5
1    2    30k    9
2    8    50k    2
3    3    40k    7
4    6    50k    7
5    4    80k    3
6    8    20k    8
7    9    90k   10
8    6    60k    4
9   10    10k    7

使用逐元素逻辑OR(|)

>>> df.loc[ (df['INCOME'] <='10k') | (df['INCOME'] >='50k') ]
       NUM INCOME  CAP
    2    8    50k    2
    4    6    50k    7
    5    4    80k    3
    7    9    90k   10
    8    6    60k    4
    9   10    10k    7

或者:

>>> df.loc[ (df['INCOME'] <='20k') | (df['INCOME'] =='50k') ]
   NUM INCOME  CAP
0    1    20k    5
2    8    50k    2
4    6    50k    7
6    8    20k    8
9   10    10k    7

【讨论】:

  • 非常感谢。我也喜欢这种方法,我已经知道它会派上用场。
猜你喜欢
  • 2014-09-13
  • 2017-04-26
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 2015-03-18
  • 1970-01-01
  • 2022-01-02
相关资源
最近更新 更多