我正在使用 pd.read_excel()
将 excel 文件导入到 python 文件中的列名如下:
columns_name_xlsx = ['Date:', 'Heure:','P1 (W)', 'P2 (W)', 'P3 (W)']
我想得到:
columns_name_expected = ['date:', 'heure:','p1_(w)', 'p2_(w)', 'p3_(w)']
我试过:
df.rename(str.lower.replace(' ', '_'), axis='columns')
但它不起作用。某人有想法吗?
谢谢 !
回答1
df.columns = (x.lower().replace(' ', '_') for x in df.columns)
回答2
您的解决方案不起作用,因为
- 您正在尝试链接两种实际上不可能的方法
- 替换方法需要提供参数(
' '
和_
)
假设这个 DataFrame 存在
# Build mock dataframe
df = pd.DataFrame(columns=['Date:', 'Heure:', 'P1 (W)', 'P2 (W)', 'P3 (W)'])
最简单的方法是迭代地对初始列名应用转换
df1 = df.rename(columns={v: v.lower().replace(' ', '_') for v in df.columns})
或者,您可以链接操作并构建自定义函数
df1 = df.rename(str.lower, axis=1).rename(lambda x: x.replace(' ', '_'), axis=1)
我希望这会有所帮助!