gpt4 book ai didi

python - 转置后找不到列名

转载 作者:行者123 更新时间:2023-12-04 12:40:03 24 4
gpt4 key购买 nike

转置 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: ('加拿大', '喀麦隆')

最佳答案

在处理数据时,您可能需要做一些事情。

  • 如果 csv 文件没有标题,则使用 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()

    关于python - 转置后找不到列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57038982/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com