组合具有不同结构的 CSV 文件的最佳工具?

Best tool to combine CSV files with different structure?

我有多个大型 CSV 文件。这些 CSV 文件几乎没有列差异。为了将它们提供给 AWS QuickSight 进行数据可视化,我想统一这些 CSV 文件的结构。我认为这样做我有两种方法:

执行此操作的最佳工具是什么?

有没有工具可以显示两个CSV文件的结构差异?如果我发现缺少哪些列,我也可以手动添加它们。

使用 pandas 我可以合并 CSV 文件,但以我所知,我应该命名所有列(下面的代码),这没有用。

import pandas as pd

df1 = pd.DataFrame({'column1': [1,2],
                    'column2': [3,4],
                    })

df2 = pd.DataFrame({'column1': [5,6],
                    'column3': [7,8],
                    })
pd.concat([df1,df2],ignore_index=True)

结果:

   column1  column2  column3
0        1      3.0      NaN
1        2      4.0      NaN
2        5      NaN      7.0
3        6      NaN      8.0

我无法告诉你“最好的” 工具是什么;这是主观的,有很多依赖性。

我可以告诉你 miller should probably be on your short list for tools to consider for working with CSV data. Also see the miller GitHub site. 最后一件事:作者是 super-helpful。

据我所知,以下内容可以完成这项工作:

mlr --csv reshape -r "^A" -o item,value then reshape -s item,value \ then unsparsify --fill-with "" *.csv > result.csv

关于命令的一些注意事项:

  • reshape -r "^A" -o item,value,将输入 CSV 从宽转换为长,将其应用于名称以“A”开头的所有字段;
  • reshape -s item,value,将之前的输出从长变宽;
  • unsparsify --fill-with "",管理所有输入记录的字段名称。对于在给定记录中不存在但在其他记录中存在的字段名称,填写值“.