数据框对象没有属性

时间:2016-06-30 23:06:53

标签: python csv pandas

我知道之前曾问过这样的问题而且我已经检查了所有的答案,我已经多次尝试找到解决方案但是徒劳无功。 实际上我使用Pandas调用Dataframe。我已经上传了一个csv.file。

dataset from csv

当我输入data.Countrydata.Year时,我会显示第1列和第2列。但是,当我输入data.Number时,每次它都会给我这个错误:

  

AttributeError:' DataFrame'对象没有属性' Number'。

6 个答案:

答案 0 :(得分:14)

使用data.columns

检查您的DataFrame

它应该打印这样的东西

Index([u'regiment', u'company',  u'name',u'postTestScore'], dtype='object')

检查隐藏的空格。然后您可以使用

重命名
data = data.rename(columns={'Number ': 'Number'})

答案 1 :(得分:9)

我要猜一猜。我认为包含"Number"的列名称类似于" Number""Number "。请注意,我假设您可能在某个位置的列名称中有剩余空间。帮我一个忙,然后跑print "<{}>".format(data.columns[1]),看看你得到了什么。它是< Number>吗?如果是这样,那么我的猜测是正确的。你应该能够解决这个问题:

data.columns = data.columns.str.strip()

答案 2 :(得分:0)

快速修复:更改excel转换导入文件的方式。依次转到“文件”,“选项”和“高级”。向下滚动并取消选中“使用系统分隔符”。还要将“十进制分隔符”更改为“。”和“千位分隔符”到“,”。然后,只需以CSV(逗号分隔)格式“重新保存”文件即可。根本原因通常与csv文件的创建方式有关。信任会有所帮助。重点是,如果不需要,为什么还要使用额外的代码?跨平台的理解和集成是工程/开发中的关键。

答案 3 :(得分:0)

我想为您简化一下。 “ DataFrame”对象没有属性“ Number” /“ Close” /或任何列名的原因是因为您正在查看列名,并且它似乎是“ Number”,但实际上是“ Number”或“ Number”,表示多余的空间是因为在excel工作表中,col名称是以该格式编写的。您可以在excel中更改它,也可以编写 data.columns = data.columns.str.strip()/ df.columns = df.columns.str.strip() 但是很有可能它会抛出相同的错误,特别是在查询后的某些情况下。 在Excel工作表中更改名称肯定可以。

答案 4 :(得分:0)

data = pd.read_csv('/您的文件名',delim_whitespace = True)

data.Number

现在您可以正常运行此代码了。

答案 5 :(得分:0)

改变“;”对于 csv 文件中的“,”