首页 > 解决方案 > 如何在 Python 中通过多列将 2 个 CSV 文件合并在一起

问题描述

我有两个 CSV 文件。文件 1看起来像:

Ticker  |    Date     |   Marketcap 
  A     |  2002-03-14 |    600000
  A     |  2002-06-18 |    520000
                   .
                   .
  ABB   |  2004-03-16 |    400000
  ABB   |  2005-07-11 |    800000
                   .
                   .
  AD    |  2004-03-16 |    680000
                   .
                   .

文件 2像:

Ticker  |    Date     |     Open    |    Close   |
  A     |  2002-03-14 |    580000   |    500000  |
  ABB   |  2002-03-14 |    500000   |    420000  |
  AD    |  2002-03-16 |    700000   |    670000  |
                          .
                          .
                          .
                          .

句点表示File 1File 2的每个代码的大量条目的值继续存在。第一个文件包含每个日期的所有值,并且每个代码连续列出在一行中,而第二个文件包含每年的所有值,并且代码一个接一个地列出。

我想做的是根据“Ticker”和“Date”合并文件1和2,看起来像:

Ticker  |    Date     |   Marketcap |    Open     |    Close   |
  A     |  2002-03-14 |    600000   |    580000   |    500000  |
  ABB   |  2002-03-14 |    520000   |    500000   |    420000  |
                                 .
                                 .

我尝试使用以下方式合并文件:

a = pd.read_csv("File1.csv")
b = pd.read_csv("File2.csv")
merged = a.merge(b, on='Date')

但我不认为这同时考虑了 Date 和 Ticker 。

标签: pythonpandascsvmerge

解决方案


我相信你需要使用['Date', 'Ticker']而不是仅仅'Date'. 此外,您可能需要how根据需要指定参数。


推荐阅读