Python - 比较两个CSV文件中的一列日期并保持这些日期

时间:2016-12-09 04:21:39

标签: python csv

我有两个长度不等的CSV文件,其列有如下所示:

CSV 1

EntryDate
9/3/10
9/27/10
10/5/10
10/11/10
10/20/10
10/25/10

CSV 2

EntryDate
9/7/10
9/27/10
10/11/10
11/3/10

我想比较这两个文件并返回它们共有的日期。我从Python 3开始,在pandas中创建两列数据框。

import pandas as pd

fields = ["StartDate"]
f1= "f1.csv"
df1 = pd.read_csv(f1, skipinitialspace=True, usecols=fields)

f2 = "f2.csv"
df2 = pd.read_csv(f2, skipinitialspace=True, usecols=fields)

我尝试过pd.merge和difflib,但它没有用。我也试过没有运气的人。帮助或方向赞赏。

1 个答案:

答案 0 :(得分:0)

假设两个文件都已排序。

制备物:

  • 打开每个文件structfile1
  • call next关于要跳过标题的文件
  • 在文件上调用next以获取每个文件的第一行

其余的:

  • 将每个文件中的行转换为datetime object,以便对其进行比较
  • 如果日期相同,
    • 将一个保存在一个容器中,可能是一个列表
    • 在每个文件上调用next以获取每个
    • 的下一行
  • 如果file2行大于file1行,
    • file2上拨打下一个并获取下一行
  • 如果file2行小于file1行,
    • file2上拨打下一个并获取下一行
  • 重复直到由其中一个文件引发的StopIteration