我知道之前曾问过这样的问题而且我已经检查了所有的答案,我已经多次尝试找到解决方案但是徒劳无功。 实际上我使用Pandas调用Dataframe。我已经上传了一个csv.file。
当我输入data.Country
和data.Year
时,我会显示第1列和第2列。但是,当我输入data.Number
时,每次它都会给我这个错误:
AttributeError:' DataFrame'对象没有属性' Number'。
答案 0 :(得分:14)
使用data.columns
它应该打印这样的东西
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 文件中的“,”