gpt4 book ai didi

python - 重命名 Pandas 中各种格式的列标题

转载 作者:太空宇宙 更新时间:2023-11-04 08:34:41 28 4
gpt4 key购买 nike

我正在开发一个对数据框进行一些计算的小工具,让我们这样说:

df['column_c'] = df['column_a'] + df['column_b']

为此,数据框需要包含列“column_a”和“column_b”。如果列的名称在导入文件(csv 或 xlsx)中的名称略有不同,我希望此代码能够工作。例如“columnA”、“Col_a”等)。

最简单的方法是重命名导入文件中的列,但我们假设这是不可能的。因此我想做一些这样的思考:

if column name is in list ['columnA', 'Col_A', 'col_a', 'a'... ] rename it to 'column_a'

我正在考虑拥有一个包含可能的列名的字典,当一个列名出现在这个字典中时,它将被重命名为“column_a”。一个额外的复杂因素是列可以按任意顺序排列。

如何解决这个问题?

最佳答案

我建议你制定转换逻辑并相应地编写一个函数:

lst = ['columnA', 'Col_A', 'col_a', 'a']

def converter(x):
return 'column_'+x[-1].lower()

res = list(map(converter, lst))

['column_a', 'column_a', 'column_a', 'column_a']

然后您可以直接在 pd.DataFrame.rename 中使用它:

df = df.rename(columns=converter)

示例用法:

df = pd.DataFrame(columns=['columnA', 'col_B', 'c'])
df = df.rename(columns=converter)

print(df.columns)

Index(['column_a', 'column_b', 'column_c'], dtype='object')

关于python - 重命名 Pandas 中各种格式的列标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50177359/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com