Pandas绘图如何将偶数列设为x轴奇数列设为y轴并解决KeyError: '0'报错
错误原因
KeyError: '0' 是因为你尝试用字符串类型的'0'索引整数类型的列名。你读取的数据集列名本身是整数(0、1、2……),但代码里用f'{df.keys()[i*2]}'把列名强制转为了字符串格式,pandas在列名里找不到字符串'0',就抛出了这个错误。
修复后的绘图代码
你要实现偶数列当x轴、对应奇数列当y轴绘图,直接用列的位置索引取值即可,不需要转字符串:
import pandas as pd import matplotlib.pyplot as plt # 读取数据集,header=0表示第一行作为列名 df = pd.read_csv('us_test_drop.csv', header=0) fig, ax = plt.subplots(figsize=(10,6)) ax.grid() # 遍历每一组偶数列(x轴)和对应奇数列(y轴) for i in range(0, len(df.columns), 2): x = df.iloc[:, i] y = df.iloc[:, i+1] ax.plot(x, y) ax.set_title('US') ax.set_xlabel('f', fontsize=12, color='r') ax.set_xlim([0,18]) plt.show()
如果需要展示每组的图例,在ax.plot()里添加label=f'序列{i//2+1}'参数,最后加一行plt.legend()即可。
内容的提问来源于stack exchange,提问作者Jumo
相关产品推荐
相关产品推荐

