需要根据其他列python中的值将函数应用于列

问题描述 投票:0回答:1

我有一个数据框

身份证 工作
1xyz 1
2xyz 1
3xyz 0

我想编写一个函数,以便将一些 ID 拆分为 1_xyx 和 2_xyz,但我只想将其应用于 ID 列中 job = 1 的值。

这是我的功能:

def add_string(string, add_str):
    return string[0] + add_string + string[1:]

df['ID'] = df.apply(lambda x:  add_string(string, '_') if df['Job'] == 1 else df['SubjID'], axis = 1)

我很困惑

python lambda apply
1个回答
0
投票

一种可能的解决方案,使用

np.where
:

df["ID"] = np.where(df["Job"], df["ID"].str[0] + "_" + df["ID"].str[1:], df["ID"])
print(df)

打印:

      ID  Job
0  1_xyz    1
1  2_xyz    1
2   3xyz    0
© www.soinside.com 2019 - 2024. All rights reserved.