无法访问dataframe列

dre*_*cko 7 python csv dataframe removing-whitespace pandas

我正在从csv文件导入数据帧,但无法按名称访问其中的某些列.这是怎么回事?

更具体地说:

> import pandas

> jobNames = pandas.read_csv("job_names.csv")
> print(jobNames)

   job_id   job_name   num_judgements
0  933985        Foo              180
1  933130        Moo              175
2  933123        Goo              150
3  933094       Flue              120
4  933088        Tru              120
Run Code Online (Sandbox Code Playgroud)

当我尝试访问第二列时,出现错误:

> jobNames.job_name
Run Code Online (Sandbox Code Playgroud)

AttributeError:'DataFrame'对象没有属性'job_name'

奇怪的是,我可以访问job_id列:

> print(jobNames.job_id)

0    933985
1    933130
2    933123
3    933094
4    933088
Name: job_id, dtype: int64
Run Code Online (Sandbox Code Playgroud)

编辑(将接受的答案放在上下文中):

事实证明,csv文件的第一行(带有列名)如下所示:

job_id, job_name, num_judgements
Run Code Online (Sandbox Code Playgroud)

注意每个逗号后面的空格!这些空格保留在列名中:

> jobNames.columns[1]

' job_name'
Run Code Online (Sandbox Code Playgroud)

它们不构成有效的python标识符,因此这些列不可用作数据框属性.我仍然可以访问它们dict风格:

> jobNames[' job_name']
Run Code Online (Sandbox Code Playgroud)

Max*_*kin 7

使用pandas.read_csv传递skipinitialspace=True标志删除CSV分隔符后的空格时。