我有一个数据框
身份证 | 工作 |
---|---|
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)
我很困惑
一种可能的解决方案,使用
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