gpt4 book ai didi

python - 清理导入的 pandas 数据框中的 header

转载 作者:太空狗 更新时间:2023-10-30 02:42:23 24 4
gpt4 key购买 nike

使用文件中的 header 导入了一系列 csv 和 xls 文件。我注意到这些标题不干净,所以当我调用它们时,我收到一个错误返回说没有这样的属性。我想要做的是与此类似的事情;

使用内置函数创建导入 header 列表

currentheaders = list(df.columns.values)

清理那个列表(这是我坚持的部分)

cleanedheaders = str.strip or regex equivalent

将该列表应用为新标题

df.columns = ['cleanedheaders']

Strip 不适用于列表,正则表达式想成为数据框,列表是否有等效的功能?

最佳答案

一个紧凑而快速的方法是

df.columns = [c.strip() for c in df.columns.values.tolist()]

如果您想使用 DataFrame.rename() 那么实际上您需要这样调用它:

df.rename(columns={c: c.strip() for c in df.columns.values.tolist()}, inplace=True) 

或者你当然可以使用同样紧凑和快速的(由 MaxU 借用):

df.columns = df.columns.str.strip()

Keep in mind none of the above solutions will work if ANY of the column names are in fact not a string.

如果任何列名不是字符串,那么理想情况下,您可以将它们全部转换为字符串,这会起作用:

df.columns = [str(i) for i in df.columns.values.tolist()]

或者如果您不想将列名转换为字符串 - 我希望出于某种充分的理由 - 那么您必须执行以下操作:

df.rename(columns={c: c.strip() for c in df.columns.values.tolist() 
if c not in [<list of columns not strings>]}, inplace=True)

关于python - 清理导入的 pandas 数据框中的 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36816810/

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