更改列名称类型,Python 3.6
Posted
技术标签:
【中文标题】更改列名称类型,Python 3.6【英文标题】:Change Column Name Type, Python 3.6 【发布时间】:2019-01-10 13:23:13 【问题描述】:我正在导入具有以下列的 MS Excel 文件 县、国名、指标、指标名称,2000、2001、2002、2003 到数据框
Data = Data = pd.read_excel('File Path')
Data.columns.str.upper() -- Will give NAN for Integer column names
Data.loc[:, ~Data.columns.str.contains('Name:')] -- TypeError: bad operand type for unary ~: 'Index'
源文件位置:http://databank.worldbank.org/data/download/India_PSR_excel.zip
如何将列名改为字符串?
【问题讨论】:
【参考方案1】:使用参数na=False
:
Data.loc[:, ~Data.columns.str.contains('Name:', na=False)]
【讨论】:
工作,谢谢,在这里,Data.columns.str.upper() 为它提供 NAN 的整数 @SPy - 是的,有不同的函数 - 默认情况下,文本函数返回NaN
s,但 str.contains 返回布尔掩码,所以不同的方法 - 参数 na
。 startswith
和 endswith
函数中使用了类似的参数。
好的,明白了...如果我们想将列名更改为大写,Data.columns = Data.columns.str.upper() 的替代方案是什么?
@SPy - 是的,这是一个很好的解决方案,替代方案只是列表理解,如Data.columns = [x.upper() for x in Data.columns]
[x.upper() for x in Data.columns] - 给出错误:AttributeError: 'int' object has no attribute 'upper'以上是关于更改列名称类型,Python 3.6的主要内容,如果未能解决你的问题,请参考以下文章