【问题标题】:How to fix "Attribute error" when using pandas in python在 python 中使用 pandas 时如何修复“属性错误”
【发布时间】:2019-06-27 20:37:27
【问题描述】:

我正在编写一个代码,要求将 csv 文件中的列转换为列表。这是我得到的错误,AttributeError: 'DataFrame' object has no attribute 'name'

我尝试将所有内容更改为名称和名称,但没有成功。它只会更改错误消息。

with open('The Project- 6-21 E on leg arc test 1.csv', "r") as csvfile:

    colnames = [ 'sensor', 'x', 'y', 'z', 'azimuth', 'elevation', 'roll', 'timestamp']

    data = pd.read_csv('The Project- 6-21 E on leg arc test 1.csv', names = colnames)

    names = data.name.tolist()

    x = data.x.tolist()

它应该创建总共三个列表(未显示全部),但目前正在挂断名称

【问题讨论】:

  • 如果您收到错误消息,请在您的问题中包含完整的错误回溯,因为这有助于诊断问题。在这种情况下,您似乎没有设置数据框的 .name 属性,并且您没有传入 'name' 作为列名之一,那么您想用 @ 引用什么987654324@?
  • (顺便说一句,最佳做法是使用df['column'] 而不是df.column 访问数据框列,因为它可以帮助防止其中一些类型的歧义)
  • data.name inside names = data.name.tolist() 未在您的colnames 中定义。如果您将该声明注释掉,您的 x = data.x.tolist() 应该可以工作吗?
  • @MigB 还值得注意的是,数据帧有一个name 属性,可以由df.name 访问,在这种情况下不清楚最初的意图是什么
  • @MigB 我同意这是最有可能的解释,但是我肯定看到了对熊猫工作原理的奇怪误解,而不是替代解释哈哈

标签: python python-3.x pandas csv dataframe


【解决方案1】:

要使用pd.read_csv() 功能,您不需要在之前open() .csv 文件。

另一点是,您尝试调用未定义的键(查找我的评论)。

import pandas as pd

colnames = [ 'sensor', 'x', 'y', 'z', 'azimuth', 'elevation', 'roll', 'timestamp']
data = pd.read_csv('The Project- 6-21 E on leg arc test 1.csv', names = colnames)

#names = data.name.tolist()
#^^^not working, because data.name (= date['name']) doesn't exist in your colnames

x = data.x.tolist()

【讨论】:

  • 关于 pandas 的内置上下文管理器的非常好的一点read_csv
猜你喜欢
  • 2019-09-24
  • 2021-12-31
  • 2021-08-14
  • 1970-01-01
  • 2019-07-04
  • 2021-06-05
  • 1970-01-01
  • 2023-02-19
  • 2021-12-23
相关资源
最近更新 更多