Python-单元类型';非类型';而价值在里面。如何改变这一点?

Python-单元类型';非类型';而价值在里面。如何改变这一点?,python,excel,pandas,Python,Excel,Pandas,在过去的几个小时里,我一直在努力解决这个问题。我正在写一个一次性使用的脚本,我希望它能节省我很多时间。 脚本的目的如下: #In a certain directory, loop through all the .xlsx files #From each .xlsx file, select a whole column based on the column header (user input) (in this case, a year) #Copy these columns suc

在过去的几个小时里,我一直在努力解决这个问题。我正在写一个一次性使用的脚本,我希望它能节省我很多时间。 脚本的目的如下:

#In a certain directory, loop through all the .xlsx files
#From each .xlsx file, select a whole column based on the column header (user input) (in this case, a year)
#Copy these columns successively into a new workbook.
我已经预先使用pandas将.tsv文件转换为.xlsx文件,如下所示:

# Read tsvfile into dataframe in using panda
df = pandas.read_table(tsvfile)
# New excelfile
writer = ExcelWriter(tsvfile + '.xlsx')
# Write dataframe to excel
df.to_excel(writer, header = True)
writer.save()
这非常有效,我现在有多个.xlsx文件,可以在不改变数据的情况下打开。问题是,根据excel,单元格值已保存为文本格式。在python脚本中尝试使用这些单元格的内容时,我经常会收到以下错误消息:

AttributeError: 'NoneType' object has no attribute ‘……’
奇怪的是,我可以把这些单元格放到一个列表中,我可以通过这种方式从单元格中读取值:

[… '2005 ', '2006 ', '2007 ', '2008 ', '2009 ', '2010 ', '2011 ', '2012 ', '2013 ', '2014 '….]
但我仍然无法与“2015”相比。我也不能在每年之后删除空格,因为类型仍然是“NoneType”

这是我用来查找列号(带有列表的列号)的函数:

我上传了一个数据集作为示例(它是来自欧盟统计局的数据):

我的整个脚本(不完整,正在工作):

我想知道的是,我能做些什么来绕过这个“非类型”的问题?我应该重写脚本中的整行吗?或者我应该检查一下我是否可以对熊猫做些什么?如果我使用
y=2015
(末尾有空格),那么我可以找到该列。但我不能假设我所有的excel文件在最后100%的时间都有额外的空间。。。 我迷路了。 我意识到这可能是一个非常具体的问题,所以我希望我提供了足够的信息


非常感谢您抽出时间

我想您正在阅读excel文件中带有空格的列。让我们使用以下方法消除空白:

df.columns = df.columns.str.strip()

我有点迷路了,但你能试试吗
df.columns=df.columns.str.strip()
pd.read\u table语句之后。这很有效,谢谢。通常,最简单的解决方案往往是最好的。如果其他人有兴趣研究如何可能有一个非类型的变量,而它里面有一个值,或者如何修复它,我也很感兴趣!
df.columns = df.columns.str.strip()