我想減少我的代碼。因此,我想在 2 列上按 3 個條件選擇行,而不是 2 行。我的 DataFrame 按粒度(總、女性、男性、城市、農村)包含國家在 2000 年至 2018 年之間的人口
Zone Granularity Year Value
0 Afghanistan Total 2000 20779.953
1 Afghanistan Male 2000 10689.508
2 Afghanistan Female 2000 10090.449
3 Afghanistan Rural 2000 15657.474
4 Afghanistan Urban 2000 4436.282
20909 Zimbabwe Total 2018 14438.802
20910 Zimbabwe Male 2018 6879.119
20911 Zimbabwe Female 2018 7559.693
20912 Zimbabwe Rural 2018 11465.748
20913 Zimbabwe Urban 2018 5447.513
我想要 2017 年的所有行,粒度為 Total AND Urban。我在下面嘗試了類似的方法,但沒有奏效,但每個條件在單獨的代碼中都能正常作業。
df.loc[(df['Granularity'].isin(['Total', 'Urban'])) & (df['Year'] == '2017')]
感謝您提供幫助的提示
uj5u.com熱心網友回復:
很可能,您今年使用了錯誤的型別。我想這些是整數。
你應該試試:
df.loc[(df['Granularity'].isin(['Total', 'Urban'])) & df['Year'].eq(2017)]
輸出(對于 2018 年,因為提供的資料中缺少 2017 年):
Zone Granularity Year Value
20909 Zimbabwe Total 2018 14438.802
20913 Zimbabwe Urban 2018 5447.513
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/465581.html
下一篇:拆分一列熊貓的內容
