python - 我可以使用 applymap 更改数据框的变量名称吗

标签 python pandas

如果我想使用 pandas 更改数据框中的变量名称,我可以不使用 pandas.df.rename() 函数而是使用 applymap() 来更改名称吗 例如

Registrar   Enrolment Agency    State   District    Sub District    Pin Code    Gender
Allahabad Bank  Tera Software Ltd   Jharkhand   Ranchi  Namkum  834003  M
Allahabad Bank  Tera Software Ltd   Jharkhand   Ranchi  Ranchi  834004  F
Allahabad Bank  Vakrangee Softwares Limited Gujarat Surat   Nizar   394380  M

我需要用“_”填充上述数据框中变量名的空格,并且所有变量名都应为小写

最佳答案

函数applymap用于按元素更改 DataFrame 的所有值,因此更改列名是另一种方法。

我认为您需要使用 python str 函数 lowerreplacelist comprehension(如果NaN):

df.columns = [col.lower().replace(' ', '_') for col in df.columns]
print (df)
        registrar     enrolment_agency            state district sub_district  \
0  Allahabad Bank    Tera Software Ltd        Jharkhand   Ranchi       Namkum   
1  Allahabad Bank    Tera Software Ltd        Jharkhand   Ranchi       Ranchi   
2  Allahabad Bank  Vakrangee Softwares  Limited Gujarat    Surat        Nizar   

   pin_code gender  
0    834003      M  
1    834004      F  
2    394380      M  

或使用 pandas str 函数的解决方案 lowerreplace :

df.columns = df.columns.str.replace(' ', '_').str.lower()
print (df)
        registrar     enrolment_agency            state district sub_district  \
0  Allahabad Bank    Tera Software Ltd        Jharkhand   Ranchi       Namkum   
1  Allahabad Bank    Tera Software Ltd        Jharkhand   Ranchi       Ranchi   
2  Allahabad Bank  Vakrangee Softwares  Limited Gujarat    Surat        Nizar   

   pin_code gender  
0    834003      M  
1    834004      F  
2    394380      M  

编辑:

如果需要通过applymap改变列名是不可能的,因为这个函数没有为Index实现(column names)。但如果真的想要类似的东西,请使用 map :

df.columns = df.columns.map(lambda col: col.lower().replace(' ', '_'))
print (df)
        registrar     enrolment_agency            state district sub_district  \
0  Allahabad Bank    Tera Software Ltd        Jharkhand   Ranchi       Namkum   
1  Allahabad Bank    Tera Software Ltd        Jharkhand   Ranchi       Ranchi   
2  Allahabad Bank  Vakrangee Softwares  Limited Gujarat    Surat        Nizar   

   pin_code gender  
0    834003      M  
1    834004      F  
2    394380      M  

关于python - 我可以使用 applymap 更改数据框的变量名称吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41920198/

相关文章:

Pandas 中的 DataFrame.ix() - 当请求的列不存在时,是否可以选择捕获情况?

python - 如何确定参数是对象还是内置?

python - 避免在 Python 的列表理解中重复调用函数

python - 了解 pandas 系列提取函数中的正则表达式

python - 通过 Python SDK 将图像字节上传到 Azure Block Blob 时出现 UnicodeDecodeError

python - 将 Pandas 中的数据帧与相同的行和列但不同的单元格值组合

python - 基于每日时间序列数据框创建工作日/周末时间序列数据框

python - 在 Dataframe 中的特定位置添加列

python - 当它们都共享相同的日期时获取列中值最高的行?

python - Pandas - 在整个数据框中搜索特定文本