我有一些列遵循“abc.def”模式,我正尝试使用函数将其更改为“abcDef”。我可以使用 df.rename(columns={'abc.def': 'abcDef'}, inplace = True)
来做到这一点,但我正在寻找一种可以应用于不同数据帧的更通用的方法。我是为简单的字符串做的,但我不知道如何将它应用于列名。我试图将列名添加到列表中并将函数附加到列表中,但这也不起作用。
我的 df 是:
import pandas as pd
import re
data = {'end.date': ['01/10/2020 15:23', '01/10/2020 16:31', '01/10/2020 16:20', '01/10/2020 11:00'],
'start.date': ['01/10/2020 13:38', '01/10/2020 14:49', '01/10/2020 14:30','01/10/2020 14:30']
}
df = pd.DataFrame(data, columns = ['end.Date','start.date'])
# below is my go at the text.
text = 'abs.d'
splitFilter = re.compile('([.!?]\s*)')
splitColumnName = splitFilter.split(text)
print(splitColumnName)
final = ''.join([i.capitalize() for i in splitColumnName])
final = final.replace('.', '')
print(final)
最佳答案
我想你想要这样的东西?
import pandas as pd
import re
data = {'end.date': ['01/10/2020 15:23', '01/10/2020 16:31', '01/10/2020 16:20', '01/10/2020 11:00'],
'start.date': ['01/10/2020 13:38', '01/10/2020 14:49', '01/10/2020 14:30','01/10/2020 14:30']
}
df = pd.DataFrame(data, columns = ['end.Date','start.date'])
# below is my go at the text.
def formatColumn(column) :
splitFilter = re.compile('([.!?]\s*)')
splitColumnName = splitFilter.split(column)
final = ''.join([i.capitalize() for i in splitColumnName])
final = final.replace('.', '')
return final[0].lower() + final[1:]
df.rename(columns=dict(zip(df.columns, [formatColumn(c) for c in df.columns])))
关于Python - 数据框列在 '.' 之后用大写字母重命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64206676/