如果我想使用 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
函数 lower
和 replace
的 list 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
函数的解决方案 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
编辑:
如果需要通过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/