【问题标题】:Merging multiple CSV's with different columns将多个 CSV 与不同的列合并
【发布时间】:2021-06-22 20:23:51
【问题描述】:

假设我有一个 CSV,由我的企业每年生成。每年我的企业都决定要收集一种新型数据。所以 Year2002.csv 看起来像这样:

Age,Gender,Address 
A,B,C

然后year2003.csv添加一个新列

Age,Gender,Address,Location, 
A,B,C,D

到 2021 年时,我的 CSV 现在有 7 列,如下所示:

Age,Gender,Address,Location,Height,Weight,Race
A,B,C,D,E,F,G,H

我的企业想要创建一个包含所有记录数据的 CSV。如果数据不可用(例如,地址数据未记录在 2002 CSV 中),则可能是 0 或 NAAN 或空单元格。

将 CSV 合并为单个 CSV 的最佳方法是什么?值得一提的是,我有 15,000 个 CSV 文件需要合并。从 2002 年到 2021 年。 2002 年 CSV 以三列开始,但到 2020 年,csv 有 10 列。我想创建一个包含所有数据的“主”电子表格。

只是一点额外的上下文...我这样做是因为我将使用 Python 来使用新数据替换空值。例如。计算平均值并将 CSV 空值替换为该平均值。

希望这是有道理的。我只是在寻找一些关于如何最好地解决这个问题的方向。我一直在玩 excel、power bi 和 python,但我想不出最好的方法。

【问题讨论】:

  • 你尝试了什么,问题出在哪里?
  • Power BI - 我尝试合并 CSV,但是由于 CSV 文件不共享相似的分隔符/分隔符,它无法正常工作。所以本质上 power BI 不能正确识别列。我可以让它识别如何正确处理某些 CSV,但因为有 15,000 多个,我无法让它对每一个都有效。
  • 对于 Python,我一直在研究 Pandas 的“合并、连接、连接和比较”文档。然而,这些例子都没有真正反映我想要做的事情。我相信如果我要在 Pandas 中执行此操作,我将不得不将 Series 或 DataFrame 列中的值合并在一起?我不确定这是否是最合适的方法?
  • edit your question 而不是在 cmets 中添加其他信息。尝试包括您尝试过的详细信息
  • Power BI 允许在多个分隔符上拆分,因此编写查询来处理该问题应该不是什么大问题。

标签: python excel pandas csv powerbi


【解决方案1】:

使用 pandas,您可以使用 pandas.read_csv() 创建 Dataframe,您可以使用 pandas.concat() 进行合并。

import pandas as pd

data1 = pd.read_csv(csv1)
data2 = pd.read_csv(csv2)

data = pd.concat(data1, data2)

【讨论】:

  • pd.concat([data1, data2]) 注意,你应该传入一个数据框列表。
【解决方案2】:

你应该看看 python csv 模块。

一个好的开始:https://www.geeksforgeeks.org/working-csv-files-python/

它对于读取 CSV 和创建新的 CSV 既简单又有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-23
    • 2022-01-04
    • 1970-01-01
    • 2014-12-23
    • 2021-10-04
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多