数据源: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

08-20 02:19