选择Pandas数据框中大于一个数字的所有值

2024-05-14 17:11:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个这样的数据框架,有50多列(从1963年到2016年)。我希望选择人口超过一定数量(比如6000万)的所有国家。现在,当我看的时候,所有的问题都是关于从单个列中选取值的。但事实并非如此。我也试过了 df[df.T[(df.T > 0.33)].any()]正如一份答复中所建议的那样。不起作用。有什么想法吗

数据框如下所示:

Country Country_Code   Year_1979  Year_1999   Year_2013
  Aruba          ABW     59980.0      89005    103187.0
 Angola          AGO   8641521.0   15949766  25998340.0
Albania          ALB   2617832.0    3108778   2895092.0
Andorra          AND     34818.0      64370     80788.0

Tags: 数据框架df数量codeany国家year
1条回答
网友
1楼 · 发布于 2024-05-14 17:11:20

首先,按^{}只筛选列名称中具有Year的列,比较所有行,然后按^{}每行至少测试一个匹配值:

df1 = df[(df.filter(like='Year') > 2000000).any(axis=1)]
print (df1)
   Country Country_Code  Year_1979  Year_1999   Year_2013
1   Angola          AGO  8641521.0   15949766  25998340.0
2  Albania          ALB  2617832.0    3108778   2895092.0

或者将Positions未选择前2列的所有列与^{}进行比较:

df1 = df[(df.iloc[:, 2:] > 2000000).any(axis=1)]
print (df1)
   Country Country_Code  Year_1979  Year_1999   Year_2013
1   Angola          AGO  8641521.0   15949766  25998340.0
2  Albania          ALB  2617832.0    3108778   2895092.0

相关问题 更多 >

    热门问题