簡體   English   中英

如何使用 MatplotLib 和 Pandas 減去列中的值並顯示它們

[英]How To Subtract Values In Columns Using MatplotLib and Pandas and Display Them

我正在使用一個使用類似於以下數據的.csv 文件的程序。

Country,Year,Life expectancy at birth (years),Healthy Life expectancy at birth (years)
Afghanistan,2019,63.2,53.9
Afghanistan,2015,61.7,52.6
Afghanistan,2010,59.9,51.1
Afghanistan,2000,55,46.8
Albania,2019,78,69.1
Albania,2015,77.8,69
Albania,2010,76.2,67.6
Albania,2000,73.5,65.2
Algeria,2019,77.1,66.4
Algeria,2015,76.5,66
Algeria,2010,75.9,65.5
Algeria,2000,72.2,62.7
Angola,2019,63.1,54.8
Angola,2015,61.7,53.7
Angola,2010,58.1,50.6
Angola,2000,49.3,42.9

我想編寫一個程序,從 2019 年每個國家/地區的預期壽命中減去 2000 年每個國家/地區的預期壽命。我該怎么做呢? 例如,對於阿富汗,我想做 63.2 - 55 並將其顯示在 x 軸為阿富汗的圖表上。

您可以按國家分組並編寫一個簡單的聚合 function 以滿足特定需求。

通過這樣做,您將獲得一個新的 dataframe 索引國家和 delta_livespan 作為列

編輯:
此代碼片段適用於您的代碼,其中年份按時間排序。
如果時間未排序,您需要使用 apply 代替或迭代分組數據幀並使用結果組裝一個新數據幀。

def calc_dif_expectations(s):
    s.reset_index(drop=True, inplace=True)
    diff = s[0] - s[s.shape[0]-1]
    return diff

diffs = df.groupby('Country').agg({'LE': lambda x: calc_dif_expectations(x)})
diffs.plot(kind='barh')

這樣做,盡管可能有更好的方法。 對於 pandas,通常有。

import pandas as pd


df = pd.read_csv('x.csv')
c2 = df.columns[2]
print(df)
df2019 = df[(df['Year']==2019)].set_index('Country')
df2000 = df[(df['Year']==2000)].set_index('Country')
df2019['increase'] = df2019[c2]-df2000[c2]
print(df2019)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM