首页 > 解决方案 > 如何检查 3 列是否相同,如果值相同,如何添加一个新列?

问题描述

我有一个看起来像这样的数据框..

index   Column A    Column B    Column C
0        alice       alice       alice
1        nick        nick        john
2        juli        nick        alice

我要检查Column A, Column B and Column C是否相等。如果相等,我想将该值添加为新的Column D. 如果没有,None请添加Column D

到目前为止我这样做了..

def func(row):
    if ((row['Column A']) == (row['Column B']) == (row['Column C'])):
        df['Column D'] = df['Column A']
    else:
        df['Column D'] = None

当我使用.. 应用该功能 df.apply (lambda row: func(row),axis =1)时,我没有得到所需的输出。

我有这样的东西..

index   Column A    Column B    Column C    Column D
0      alice        alice       alice        None
1      nick         nick        john         None
2      juli         nick        alice        None

然而,我希望输出像..

index   Column A    Column B    Column C    Column D
0      alice        alice       alice        alice
1      nick         nick        john         None
2      juli         nick        alice        None

对此有什么帮助吗?

标签: pythondataframe

解决方案


在您的 if 子句中,您写道:

(row['Column A']) == (row['Column B']) == (row['Column C'])

我不确定这是否是正确的方法。您是否尝试过以下代码作为您的 if 子句?

((row['Column A']) == (row['Column B'])) and ((row['Column B']) == (row['Column C']))

推荐阅读