我正在使用世界银行数据,并且试图创建一些表示时间的图表,但现在的数据如下所示:
因为我不认为有办法将其更改为日期时间,所以我认为唯一的方法是用我现在拥有的列名(即值和当前值)将所有这些年份列替换为“ Year”列一个单独的列。
Python中是否有任何不错的功能允许这样做,或者我必须遍历整个数据框?
编辑以包含一些代码:
df2 = pd.DataFrame({'Country Name': ['Aruba', 'Afghanistan', 'Angola'],
'Country Code': ['ABW', 'AFG', 'AGO'],
'1960':[65.66, 32.29, 33.25],
'1961': [66.07, 32.74, 33.57],
'1962': [66.44, 33.18, 33.91],
'1963': [66.79, 33.62, 34.27],
'1964': [66.11, 34.06, 34.65],
'1965': [67.44, 34.49, 35.03]}).set_index('Country Name')
答案 0 :(得分:0)
您可以尝试对数据框进行转置,这样年份值将成为行,然后可以将其重命名为年份并在绘图中使用它。
您可以尝试这样的事情:
import pandas as pd
from matplotlib import pyplot as plt
df1 = pd.DataFrame({'Country Name' : ['Aruba', 'Afghanistan', 'Angola'],
'Country Code' : ['ABW', 'AFG', 'AGO'],
'1960' : [65.66, 32.29, 33.25],
'1961' : [66.07, 32.74, 33.57],
'1962' : [66.44, 33.18, 33.91],
'1963' : [66.79, 33.62, 34.27],
'1964' : [66.11, 34.06, 34.65],
'1965' : [67.44, 34.49, 35.03]})
df2 = df1.transpose()
df2.columns = df1['Country Name']
df2 = df2[2:]
df2['Year'] = df2.index.values
plt.plot(df2['Year'], df2['Aruba'])
plt.plot(df2['Year'], df2['Afghanistan'])
plt.plot(df2['Year'], df2['Angola'])
plt.legend()
plt.show()
输出:Plot Output