Python 选择熊猫数据框中大于一个数字的所有值
我有一个这样的数据框架,有50多列(从1963年到2016年)。我希望选择人口超过一定数量(比如6000万)的所有国家。现在,当我看的时候,所有的问题都是关于从单个列中选取值的。但事实并非如此。我也试过了Python 选择熊猫数据框中大于一个数字的所有值,python,pandas,Python,Pandas,我有一个这样的数据框架,有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
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
首先,按筛选列名称中具有
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列的所有列与以下列进行比较:
谢谢工作完美。(比如,='Year')做什么?以及iloc one中2后面的“;”是否意味着它将选择第二个-1后面的所有列?@RakeshGulati-
过滤器
检查列名称,如果查找年份
则返回所有列包含年份
iloc
函数选择所有列,省略前2列,此处为Country
和Country\u code
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