我有一个数据帧。许多列名具有非ASCII字符和特殊字符如(),/,+。(中间的非ASCII点)和<强>非ASCII空间< /强>strong>读取csv时未发生此情况。这是由于一次热编码造成的。(当我将分类变量转换为数字列时,类别值具有非ascii值)
df
Col1/name Col 2() name Col3 + name Col4 ^¨ name etc...
预期产出
我只想在列名中添加数字、下划线和字符(我只想更改列名,而不是数据框或行中的任何值)。这是必要的,因为某些机器学习算法(如lightGBM)无法处理列名中的非ASCII字符或非ASCII空格
预期输出df:
Col1name Col_2_name Col3__name Col4__name etc...
因此,用下划线替换空格并删除列名中的任何非数字和非字符
您可以使用方法
replace
:输出:
可以使用
str.replace('_{2,}', '_')
删除多个下划线使用
pandas.Series.str.replace
和findall
的一种方法:输出:
相关问题 更多 >
编程相关推荐