记录引起行值比较变化的确切值

2024-06-26 14:42:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我想找出pandas DataFrame中两列之间的差异

假设我有两列,我已经比较了现场的变化。然后我在outputMOO89-'WR'-->;M0089-'Wx'中找到这样一行。这意味着行值从第一个修改为第二个。我应该怎么做才能记录更改的输出并记录在另一列中?我希望“x”存储在另一列中,因为它是导致更改的列。你知道吗

Final_df["Unique"] = Final_df['New_Branching Logic'][~Final_df['New_Branching Logic'].isin(Final_df['Branching Logic)'])].drop_duplicates()
Final_df

我试过这个代码,但它没有捕捉到真正的价值,导致了变化。我想创建一个列,其中的值导致了更改,因为在本例中,itsx是导致更改的原因。这里是到TESTDATA SAMPLETESTData.csv的链接


Tags: gtdataframepandasdfnew记录差异wr
1条回答
网友
1楼 · 发布于 2024-06-26 14:42:08

此函数返回第二个字符串中不同的所有字符(“New\u Branching Logic”列):

def string_comparison(row):
    return [row['New_Branching Logic'][i] 
            for i in range(len(row['Branching Logic'])) 
            if row['Branching Logic'][i] != row['New_Branching Logic'][i]]

然后,可以将其应用于DataFrame的每一行:

Final_df["Unique"] = Final_df.apply(string_comparison, axis=1)

在以下数据帧上测试时:

Final_df = pd.DataFrame([["M0089-'WR'","M0089-'Wx'"]], 
    columns=['Branching Logic', 'New_Branching Logic'])

我得到这个结果:

    Branching Logic     New_Branching Logic     Unique
0   M0089-'WR'          M0089-'Wx'              [x]

“Unique”列中是所有不同字符的列表。你知道吗

相关问题 更多 >