首页 > 解决方案 > 如何根据条件将数据框列中的值写入另一列?

问题描述

我在这里尝试弄清楚如何根据条件设置列时遇到了麻烦。基本上,如果该行与“企业”和“客户”不同,我想将“客户”列中的值复制到“呼叫参考”列的行中。

这是我正在尝试的代码:

import numpy as np

df_OCB['Call Ref'] = np.select([
    np.logical_and(
        df_OCB['Call Ref'] != 'Enterprise', 
        df_OCB['Call Ref'] != 'Client'
    )], 
    df_OCB['Costomer'],
    default=''
)

有谁知道解决方案?

标签: pythonpandasdataframe

解决方案


不确定这是否是您真正想要做的,因为您没有提供输入和输出数据帧的示例,但据我所知,我做了一个玩具示例:

import pandas as pd
import numpy as np



df = pd.DataFrame([['A','Enterprise'],
                   ['B','Client'],
                   ['C','Client'],
                   ['D','Something else'],
                   ['E','Enterprise']], columns=['Client','Call Ref'])

Output:

  Client    Call Ref
0   A     Enterprise
1   B     Client
2   C     Client
3   D     Something else
4   E     Enterprise

在这里你应用一个布尔掩码:(df['Call Ref'] != 'Enterprise') & (df['Call Ref'] != 'Client')

像这样:

df['Call Ref'][(df['Call Ref'] != 'Enterprise') & (df['Call Ref'] != 'Client')] = df['Client'][(df['Call Ref'] != 'Enterprise') & (df['Call Ref'] != 'Client')]

Output:

    Client  Call Ref
0    A     Enterprise
1    B     Client
2    C     Client
3    D     D
4    E     Enterprise

如果您提供有关所需输出数据框的更多信息,我可以给您一个更简洁的示例,希望对您有所帮助。


推荐阅读