Python Pandas DataFrame列按列索引调用但不是名称?

时间:2017-08-04 21:56:57

标签: python python-3.x pandas

所以在这里我将一个csv文件导入到python中,然后尝试对第一列做一些事情:'输入',但我不断收到消息:

" AttributeError:' DataFrame'对象没有属性' Type' &#34 ;.

按名称打印列不起作用,但按位置打印。为什么按名称引用它不起作用?它适用于所有其他列。

import pandas as pd
data = pd.read_csv('ResturantData.csv', sep=',', index_col=False) 
df = pd.DataFrame(data=data)

print(df.head())
print(df.columns)

print(df.iloc[:, 0])    #Works! 
print(df.Type)          #Doesn't work :/
print(df['Type'])       #Doesn't work :/

以下是DataFrame的样子;

     Type  Size  Bill  Tip
0  Dinner     5   126   12
1  Dinner     4   103   12
2  Dinner     4    94   11
3  Breakfast  4    87   10
4  Dinner     4    76    7

谢谢!

1 个答案:

答案 0 :(得分:0)

Type列的第一个字符不是ascii。它是'\ufeff'

这是一种从列名中删除非ascii的方法。

df.rename(columns=lambda x: ''.join([y for y in x if ord(y) < 128]), inplace=True)

df.Type

0       Dinner
1       Dinner
2       Dinner
3    Breakfast
4       Dinner
Name: Type, dtype: object