can I use applymap to change variable names of dataframe

adi*_*uri 3 python pandas

If I want to change variable names in a data frame using pandas can I change the names without using pandas.df.rename() function but by using applymap() For example

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
Run Code Online (Sandbox Code Playgroud)

I need to fill spaces in the variable names in the above data frame with "_" and all the variable names should be in lower case

jez*_*ael 5

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

我认为你需要list comprehensionpython str的功能lowerreplace(它不工作是否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  
Run Code Online (Sandbox Code Playgroud)

或具有pandas str功能lower和的解决方案replace

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  
Run Code Online (Sandbox Code Playgroud)

编辑:

如果需要更改列名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  
Run Code Online (Sandbox Code Playgroud)