首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Row值python的比较中记录引起更改的确切值

在Row值python的比较中记录引起更改的确切值
EN

Stack Overflow用户
提问于 2019-07-16 14:22:12
回答 1查看 97关注 0票数 0

我想指出熊猫DataFrame中两栏的区别

假设我有两个列,我将其与“点”更改进行比较。然后我在输出row 89-‘WR’->M 0089-‘Wx’中找到这样的一行。这意味着行值从第一个修改为第二个。如何记录更改的输出并将其记录在另一列中?我希望“x”存储在另一列中,因为它是导致更改的原因。

代码语言:javascript
复制
Final_df["Unique"] = Final_df['New_Branching Logic'][~Final_df['New_Branching Logic'].isin(Final_df['Branching Logic)'])].drop_duplicates()
Final_df

我尝试过这段代码,但它没有捕获导致更改的真正值。我想要创建一个列,它的值导致了更改,就像在本例中它的x是导致更改的原因一样。下面是指向TESTDATA示例TESTData.csv的链接

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-16 14:58:40

此函数返回第二个字符串( 'New_Branching逻辑‘列)中不同的所有字符:

代码语言:javascript
复制
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的每一行。

代码语言:javascript
复制
Final_df["Unique"] = Final_df.apply(string_comparison, axis=1)

在以下DataFrame上测试时:

代码语言:javascript
复制
Final_df = pd.DataFrame([["M0089-'WR'","M0089-'Wx'"]], 
    columns=['Branching Logic', 'New_Branching Logic'])

我得到了这个结果:

代码语言:javascript
复制
    Branching Logic     New_Branching Logic     Unique
0   M0089-'WR'          M0089-'Wx'              [x]

在“唯一”列中是所有不同字符的列表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57059498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档