【发布时间】:2020-05-30 21:25:00
【问题描述】:
我已从 .csv 文件中提取列名,现在我想使用正则表达式将单词的第一个字母和_ 字符之后的第一个字母大写。
示例:loan_status -> Loan_Status
Loan_ID
loan_status
Principal
terms
effective_date
due_date
paid_off_time
past_due_days
age
education
Gender
这就是我目前想出的(^[a-z])+\w+
更新 感谢 Wiktor Stribiżew,这就是我想出的。 我想知道是否有更紧凑的方法来执行以下操作。
import csv
import pandas as pd
import re
dataFrame = pd.read_csv('Loan_payments_data_2020_unclean.csv')
columnsDict = {"columnName": list(dataFrame.columns)}
columnsDataFrame = pd.DataFrame(columnsDict)
replacedColumns = columnsDataFrame['columnName'].str.replace(r'(?<![^_]).', lambda x: x.group().upper())
dataFrame.columns = list(replacedColumns)
print(dataFrame)
【问题讨论】:
-
也许
string.capwords在这里会有所帮助:df['Loan_ID'].apply(lambda x: string.capwords(x, sep='_'))
标签: python-3.x regex pandas