Python的字母数字和字符比较

问题描述 投票:0回答:2

我有一个CSV数据集和我试图选择所有的行,其中“收入”列等于“<= 50K” OR“> 50K”

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

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

我的代码基本上是说选择的所有行“DF”数据集的收入列等于“> 50K”

任何帮助吗?

python pandas jupyter data-analysis
2个回答
2
投票

你可以这样做

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

1
投票

一个优秀的答案已经被@Wen展出,但另一种方法,你可以逐元素的运营商尽可能尝试最初在您的文章希望。

示例数据帧:

>>> 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
© www.soinside.com 2019 - 2024. All rights reserved.