在转换Python数据框后,我无法访问列名来绘制图形。我想选择两列,但失败了。它一直说没有这样的列名。我对Python,数据帧和转置非常陌生。有人可以帮忙吗?
下面是我的输入文件,我想将行转置为列。换位后成功了,但是我无法选择“加拿大”和“喀麦隆”来绘制图表。
country 1990 1991 1992 1993 1994 1995
0 Cambodia 65.4 65.7 66.2 66.7 67.1 68.4
1 Cameroon 63.9 63.7 64.7 65.6 66.6 67.6
2 Canada 98.6 99.6 99.6 99.8 99.9 99.9
3 Cape Verde 77.7 77.0 76.6 89.0 79.0 78.0
import pandas as pd
import numpy as np
import re
import math
import matplotlib.pyplot as plt
missing_values=["n/a","na","-","-","N/A"]
df = pd.read_csv('StackoverflowGap.csv', na_values = missing_values)
# Transpose
df = df.transpose()
plt.figure(figsize=(12,8))
plt.plot(df['Canada','Cameroon'], linewidth = 0.5)
plt.title("Time Series for Canada")
plt.show()
它会产生一长串错误消息,但最终消息是
KeyError :(“加拿大”,“喀麦隆”)
答案 0 :(得分:0)
处理数据时,您可能需要做一些事情。
df = pd.read_csv('StackoverflowGap.csv', na_values = missing_values, header = None)
。df.columns= df.iloc[0]
。df = df.reindex(df.index.drop(0))
。plt.plot()
命令中),您需要在列列表(即df[]
)上使用df[['Canada', 'Cameroon']]
。编辑因此,适用于我的代码如下
df = pd.read_csv('StackoverflowGap.csv', na_values = missing_values, header = None)
df = df.T
df.columns= df.iloc[0]
df = df.reindex(df.index.drop('country'))
df.index.name = 'Year'
plt.figure(figsize=(12,8))
plt.plot(df[['Canada','Cameroon']], linewidth = 0.5)
plt.title("Time Series for Canada")
plt.show()