【问题标题】:Python CSVkit compare CSV filesPython CSVkit 比较 CSV 文件
【发布时间】:2016-04-22 15:47:29
【问题描述】:

我有两个看起来像这样的 CSV 文件..

CSV 1

reference  |  name  |  house
----------------------------
2348A      |  john  |  37
5648R      |  bill  |  3
RT48       |  kate  |  88
76A        |  harry |  433

CSV2

reference
---------
2348A
76A

使用 Python 和 CSVkit,我试图通过将 CSV1 中的行与 CSV2 进行比较来创建输出 CSV。有没有人可以为我指明方向的例子?

【问题讨论】:

    标签: python csv csvkit


    【解决方案1】:

    我建议使用pandas 来实现您正在寻找的内容:

    这里是使用 pandas 的简单方法,考虑你的两个 csv 文件是这样的:

    CSV1

    reference,name,house
    2348A,john,37
    5648R,bill,3
    RT48,kate,88
    76A,harry ,433
    

    CSV2

    reference
    2348A
    76A
    

    代码

    import pandas as pd
    df1 = pd.read_csv(r'd:\temp\data1.csv')
    df2 = pd.read_csv(r'd:\temp\data2.csv')
    df3 = pd.merge(df1,df2, on= 'reference', how='inner')
    df3.to_csv('outpt.csv')
    

    输出.csv

    ,reference,name,house
    0,2348A,john,37
    1,76A,harry ,433
    

    【讨论】:

      【解决方案2】:

      我建议使用 csvkit 中的 csvjoin 之类的工具

      pip install csvkit
      $ csvjoin --help
      usage: csvjoin [-h] [-d DELIMITER] [-t] [-q QUOTECHAR] [-u {0,1,2,3}] [-b]
                     [-p ESCAPECHAR] [-z MAXFIELDSIZE] [-e ENCODING] [-S] [-v] [-l]
                     [--zero] [-c COLUMNS] [--outer] [--left] [--right]
                     [FILE [FILE ...]]
      

      示例: 加入[reference]的

      csvjoin --columns "reference" --left CSV1.csv CSV2.csv
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-16
        • 1970-01-01
        • 2023-03-15
        相关资源
        最近更新 更多