【问题标题】:python pandas compare two columns and return resultspython pandas比较两列并返回结果
【发布时间】:2018-07-11 06:14:56
【问题描述】:

我有两个数据框,如下所示。我在两者中都添加了key 列,以便获得笛卡尔关节。我想将 df3 数据框的 BEN_NAME2 列中的每个值与 df4 数据框的 names2 列进行比较。我最初的计划是执行笛卡尔联合并检查是否有任何匹配值。但是我的两个数据框都很大,当我尝试加入时出现内存错误。

我想从BEN_NAME2 列中一次执行一个单元格的操作。我想在df3 中创建一个新列,如果找到完全匹配,它将给我来自df3 的行索引。

例如,df3 将获得两个新列,列 match 的值 (0,1,0) 和列 matching_row_index 的值 (0,3,0) 因为来自第二行的 jones 值与 @987654334 匹配@数据框

sales = [{'key': 0, 'BEN_NAME2': '150 jones'},
         {'key': 0,  'BEN_NAME2': 'jones'},
         {'key': 0,  'BEN_NAME2': '50'}]
df3 = pd.DataFrame(sales)

sales = [{'key': 0, 'names2': 'xyc'},
         {'key': 0,  'names2': 'fsdfa'},
         {'key': 0,  'names2': 'jones'}]
df4 = pd.DataFrame(sales)

我的主要目标是以相对较快的速度获得输出。

【问题讨论】:

    标签: python string pandas dataframe comparison


    【解决方案1】:

    在循环中使用iloc()。此函数允许您像数组一样导航数据框。

    for i in range(0,10):
        A=df['Ben_names'].iloc[i]
        B= df['column_name'].iloc[i]
        #write the conditional statement using if and value to be inserted is var
    
        df.['column_nmae2'].iloc[i]=var
    

    【讨论】:

    • 我需要在第二个数据框的整个列中搜索本名...截至目前,您的代码似乎只提供了对一行的比较
    猜你喜欢
    • 1970-01-01
    • 2019-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多