数据源:https://www.kaggle.com/worldbank/world-development-indicators
文件夹:“世界发展指标”
文件:indicators.csv
我试图绘制两个变量之间的散点图。然而,这两个变量的大小并不相同。
数据库如下所示:
它按名称数据保存:
CountryCode IndicatorName Year Value
USA Population, total 1993 72498
USA Population, total 1994 76700
USA Population, female (% of total) 1993 50.52691109
USA Population, female (% of total) 1994 50.57235984
USA GDP per capita (const 2005 US$) 1994 23086.93795
USA Population, female (% of total) 1988 50.91933134
USA Population, total 1988 61077
我想绘制两件事之间的散点图:女性绝对人口和人均gdp(const 2005美元)。
绝对女性人口=总人口*总人口,女性百分比
挑战如下:
a)一个国家的总人口、女性人口和GDP值存在不同的年份。例如,对美国来说,人口总数的数值只有20年,女性人口数字是18年的,GDP值只有10年。
没有NAN/Null值
我需要这些值,其中所有这些参数的值都存在于一个国家的给定年份。
我是python新手,所以无法在代码中表达我想要的内容。有人能帮忙吗?
femalepop_filter = data['IndicatorName'].str.contains('Population,
female')
FemalePop = data[femalepop_filter]
Pop_total=data['IndicatorName'].str.contains('Population, total')
Pop_Tot=data[Pop_total]
hist_indicator = 'GDP per capita \(const 2005'
GDP_Filter = data['IndicatorName'].str.contains(hist_indicator)
GDPValues=data[GDP_Filter]
c1 = (FemalePop['CountryCode'])
c2 = (GDPValues['CountryCode'])
c3 = (Pop_Tot['CountryCode'])
c4 = np.intersect1d(c1,c2)
c5 = np.intersect1d(c3,c4)
我捕获了所有参数的国家代码现在我到了C5的十字路口。有人能帮我怎么得到c5中国家代码的数据吗?
最佳答案
我找到了答案。
data2=data[data['CountryCode'].isin(c5)]
#Getting all the intersection of country codes in one dataset
data2['concatyearandCC'] = data2["CountryCode"] + "" + data2["Year"].map(str)
#Introducing new column which is concatenation of country code and Year so that I
#get all the rows corresponding to same year and country code.
c9 = pd.merge(FemalePop2,Pop_Tot2,on="concatyearandCC")
c10= pd.merge(c9,GDPValues2,on="concatyearandCC")
#Merging datasets containing female population%, GDP and total population of
#females so that I can calculate absolute number of females.
c10.rename(columns={'Value_x': 'Population_female%', 'Value_y': 'Population
Total', 'Value': 'GDP Per capita'}, inplace=True)
#Renaming some columns for ease.
c10_Final['Abs_Female_Pop'] = c10_Final['Population_female%']
*c10_Final['Population Total']
#Finding absolute female population