使用pandas后,将2个数据流合并为1

时间:2016-10-17 19:02:44

标签: python python-3.x csv pandas

我有两个单独的curl调用,它们生成两个单独的csv文件。两个文件都有一个公共字段(name_id)。我正在尝试合并这些文件并在控制台上打印它们。

  1. 从第一个csv开始,我想在表格中添加所有列(name_id,phone_num,zip)。将有两个列(cases_week1,cases_week2)不是第一个csv的一部分,但它们位于第二个csv中。

  2. 从第二个csv,我想添加(cases_week1和cases_week2)的所有值,其中两个文件之间匹配使用公共列(name_id)如果没有匹配,只需转到下一个记录。

  3. P.S:第一个csv总是会有比第二个csv更多的行。

    cd_curl csv
    ----------------
    name_id, phone_num, zip
    abc123, 9989898, 12345
    def456, 3874982, 45678
    ghi789, 7728261, 91011
    
    cc_curl csv
    -----------------
    name_id, cases_week1, cases_week2
    abc123, 3, 3
    def456, 5, 2
    zzz111, 7, 11
    
    Table structure
    ---------------
    CREATE TABLE `data`.`call` (
      `name_id` VARCHAR(50) NOT NULL,
      `phone_num` VARCHAR(45) NOT NULL,
      `zip` VARCHAR(45) NOT NULL,
      `cases_week1` VARCHAR(45) NOT NULL,
      `cases_week2` VARCHAR(45) NOT NULL,
      PRIMARY KEY (`name_id`)
    )
    ENGINE = InnoDB;
    
    Code
    ----
    #!/usr/bin/python3
    
    import pandas as pd
    
    cd_curl = "url-1-hidden-due-to-security"    
    cc_curl = "url-2-hidden-due-to-security"
    
    cd= pd.read_csv(cd_curl)
    cc= pd.read_csv(cc_curl)
    
    for row in cd.to_dict(orient="records"):
        print(row['name_id'], row['phone_num'], row['zip'])
    
    
    Desired output
    --------------
    abc123 9989898 12345 3 3
    def456 3874982 45678 5 2
    ghi789 7728261 91011
    

    如何打印name_id匹配的cases_week1和cases_2的值?

0 个答案:

没有答案