更改列名称类型,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 - 是的,有不同的函数 - 默认情况下,文本函数返回 NaNs,但 str.contains 返回布尔掩码,所以不同的方法 - 参数 nastartswithendswith 函数中使用了类似的参数。 好的,明白了...如果我们想将列名更改为大写,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的主要内容,如果未能解决你的问题,请参考以下文章

匹配列并附加到数据框,Python 3.6

SettingWithCopyWarning Python 更改 Dataframe 中的列数据类型

如何在 python 3.6 中使用类型提示?

Python 3.6 泛型类型提示

在python 3.6中处理自定义编码时遇到类型错误

“void”函数中的 NoReturn 与 None - Python 3.6 中的类型注释