【问题标题】:How to tag records with filename, imported to pandas dataframe from multiple csv files?如何用文件名标记记录,从多个 csv 文件导入到 pandas 数据框?
【发布时间】:2017-12-15 22:52:37
【问题描述】:

我有一组 csv 文件需要导入到 pandas 数据框中。

我已将文件路径作为列表导入,FP,我正在使用以下代码读取数据:

for i in FP:
    df = pd.read_csv(i,index_col=None, header=0).append(df)

这很好用,但不幸的是文件中没有日期时间戳或文件识别属性。我需要知道每条记录来自哪个文件。

我尝试添加这一行,但这只是返回读取的最终文件的文件名:

for i in FP:
    df = pd.read_csv(i,index_col=None, header=0).append(df)
    df['filename'] = i

我可以想象一些混乱的多步骤解决方案,但想知道在我现有的循环中是否可以做一些更优雅的事情。

【问题讨论】:

  • 你需要什么属性?

标签: python pandas


【解决方案1】:

我会这样做:

df = pd.concat([pd.read_csv(f, header=None).assign(filename=f) for f in FP], 
               ignore_index=True)

【讨论】:

  • 完美运行。您还修复了一个我忽略的错误,我忘记了 ignore_index=True 的重要性。会在我原来的问题中注明。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多