【问题标题】:Python : Create dictionary keys from renamed pandas columnsPython:从重命名的熊猫列创建字典键
【发布时间】:2019-10-21 03:53:37
【问题描述】:

当我们从包含多个工作表的 excel 文件中解析时,这会从列标题中去除不需要的空白。

df = {key: sheet.rename(columns=lambda x: x.strip()) for key, sheet in pd.read_excel(filename).items()}

但是,如果我想从 csv 文件而不是从带有工作表的 excel 文件中进行解析,我该怎么做?

df = pd.read_csv(fname, sep=";", header=0, encoding="iso-8859-1", error_bad_lines=False)

keys_df = df.rename(columns={lambda x: x.strip()})

好像没用。

我想用字典键,而不是列表。

This question 没有帮助我,因为我想从重命名的列创建字典键。

【问题讨论】:

  • 请给我们一个 filename.csv 样本和您的预期输出。
  • pd.read_csv(...) 返回DataFrame。 CSV 文件没有工作表,因此您无法从中获得 dict 项目。因此,当您将.items() 应用到它时,它是DataFrame.items(),您正在尝试使用它,但这不会起作用...您是否尝试将大量 CSV 文件分别视为工作表或...?
  • 你想用字典做什么?我用我的小眼睛窥探,一个 XY 问题
  • 从 csv 文件解析时,我想从列标题中去除不需要的空白。
  • 我用我现在正在尝试的内容更新了代码,但在keys_df 行出现错误:TypeError: 'set' object is not callable

标签: python excel pandas csv dictionary


【解决方案1】:

如果您想从 csv 文件中提取数据框并去除列名:

df = pd.read_csv(fname, sep=";", header=0, encoding="iso-8859-1",
                 error_bad_lines=False).rename(columns=lambda x: x.strip())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-15
    • 2018-02-26
    • 1970-01-01
    • 2016-01-14
    • 2023-01-05
    • 2021-08-15
    相关资源
    最近更新 更多