代码之家  ›  专栏  ›  技术社区  ›  Nathon

如何检查pandas csv数据与雪花表数据是否匹配?

  •  0
  • Nathon  · 技术社区  · 1 年前

    下面是csv中的列,每个Country_code都与雪花表匹配。 我尝试了所有连接,并能够读取pandas数据帧中的雪花数据,但我不知道如何使用表中的代码检查csv文件country_code。在python pandas中,如果匹配,则将标志设置为true;如果不匹配,则设置为false。

    Country_code | Country
    U123_CA      |     USA
    C123_TR      |  Canada
    I123_MU      |   India
    E123_EU      |  Europe
    

    表格数据

    Code    | Country   | Date 
    U123_CA       USA     2021
    C123_TR    Canada     2020
    I999_MU     India     2022
    
    1 回复  |  直到 1 年前
        1
  •  1
  •   taller    1 年前

    左加入两个DF并获得旗帜 notna() .

    import pandas as pd
    from io import StringIO
    data1 = """Country_code,Country
    U123_CA,USA
    C123_TR,Canada
    I123_MU,India
    E123_EU,Europe"""
    data2 = {
        'Code': ['U123_CA', 'C123_TR', 'I999_MU'],
        'Country': ['USA', 'Canada', 'India'],
        'Date': [2021, 2020, 2022]
    }
    df1 = pd.read_csv(StringIO(data1))
    df2 = pd.DataFrame(data2)
    df1 = df1.merge(df2, how='left',
       left_on=['Country_code', 'Country'],
       right_on=['Code', 'Country'])
    df1['flag'] = df1['Code'].notna()
    df1.drop(columns=['Code', 'Date'], inplace=True)
    print(df1)
    

    输出

      Country_code Country   flag                                                                 
    0      U123_CA     USA   True                                                                 
    1      C123_TR  Canada   True                                                                 
    2      I123_MU   India  False                                                                 
    3      E123_EU  Europe  False