【问题标题】:Python - AttributeError: 'DataFrame' object has no attributePython - AttributeError:“DataFrame”对象没有属性
【发布时间】:2018-11-19 06:13:44
【问题描述】:

我有一个包含各种列的 CSV 文件,在过去的几个月里一切都运行良好,直到我更新了文件并获得了新信息,现在 Python 似乎没有拾取这一列。我使用的是 Python 2.7,并确保我拥有最新版本的 pandas。

当我从 Yahoo Finance 下载 csv 文件时,我在 Excel 中打开它并更改了列的格式,以使其更具可读性,因为所有信息都在一个单元格中。我使用了“文本到列”功能,并根据逗号的位置拆分数据。

然后我使用 excel 中的 Trim 函数并左对齐数据,确保在每一列中单元格的开头没有空格。

我尝试了以下方法,但仍然得到相同或相似的结果:

df = pd.read_csv("KIO.csv") 之后,我尝试使用df.head() 读取我是否可以读取前几列 - 但仍然出现相同的错误。

我尝试按照类似帖子中的建议重命名有问题的列,使用: df = df.rename(columns={"Close": "Closing"}) - 在这里我又遇到了同样的错误。 “print df.columns”也导致了同样的问题。

df[1]” - 最后给出了一个长错误“KeyError:1” - 如果有帮助,我可以打印整个内容。

添加“skipinitialspace=True” - 没有区别。

我认为问题可能出在实际的 csv 文件信息中,所以我删除了所有列并制作了自己的信息,但仍然遇到同样的错误。

以下是我的部分代码,因为总代码很长:

enter code here
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as pltdate
import datetime
import matplotlib.animation as animation
import numpy as np

df = pd.read_csv("KIO.csv", skipinitialspace=True)
#df.head()

#Close = df.columns[0]
#df= df.rename(columns={"Close": "Closing"})
df1 = pd.read_csv("USD-ZAR.csv")

kio_close = pd.DataFrame(df.Close)
exchange = pd.DataFrame(df1.Value)
dates = df["Date"]
dates1 = df1["Date"]

上述变量已在其余代码中使用,因此如果可以在此处解决此问题,则其余代码将是正确的。

这是错误的复制/粘贴:

块引用 回溯(最近一次通话最后): 文件“C:/Users/User/Documents/PycharmProjects/Trading_GUI/GUI_testing.py”,第 33 行,在 kio_close = pd.DataFrame(df.Close) getattr 中的文件“C:\Python27\lib\site-packages\pandas\core\generic.py”,第 4372 行 返回对象。getattribute(自我,姓名) AttributeError: 'DataFrame' 对象没有属性 'Close'

非常感谢您。

【问题讨论】:

  • 按原样显示错误消息。
  • 我将在上面进行编辑并按原样包含错误。
  • 应该禁止在 Excel 中打开 .csv (*)。 Excel 尝试“衡量”数据类型并在幕后默默地转换内容 - 如果您再次保存 csv,您会在之前拥有良好数据的地方获得修改后的值 - 特别是类似日期的值会发生这种情况(即 21.3 => 3 月 21 日)等。确保您的数据没有以这种方式和方式损坏。
  • (*) 如果您稍后将其保存为 csv 并使用此 csv 与其他程序一起打开它
  • 我不知道数据在Excel中是在后台更改的。当我保存 csv 文件时,它说保存时“可能包含与 CSV 不兼容的功能”。这是否意味着当我从 Yahoo Finance 下载文件时,我不能在 Excel 中以任何方式更改它?为什么我以前可以在 Excel 中更改它,但现在突然出现这些错误?

标签: python-2.7 pandas csv dataframe


【解决方案1】:

@Rip_027 这是关于您的最后一条评论。每当我通过双击文件图标打开 csv 文件时,我都会遇到同样的问题。您需要先启动 Excel,然后获取外部数据。下面的链接有更多详细信息,将作为指导。希望这会有所帮助。

https://www.hesa.ac.uk/support/user-guides/import-csv

【讨论】:

  • 感谢您的支持 - 遗憾的是,它似乎不适用于所有 csv 文件 - 我正在使用的外汇汇率文件之一不想导入到 excel 中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-23
  • 2017-01-24
  • 2018-10-10
  • 2019-08-18
  • 2021-01-20
  • 2020-05-16
  • 2018-10-04
相关资源
最近更新 更多