根据另一个列值如何开始的条件创建自定义列
Create custom column based on condition of how another column value starts with
我有以下数据框:
人员编号错误部门名称电子邮件
国家
CZ 10054609 Veronika Fi 使用标识符 11380151... CZ:Supply Chain Pohořelice 1 Henkel Cosmeticos... verca.fialova.2001@gmail.com
CZ 10054620 Radmila Val 使用标识符 11380126... CZ:Supply Chain Pohořelice 1 Henkel VAS (CZM63... rvalova1@seznam.cz
CZ 10054728 Pavel Pecka 使用标识符 11805326... CZ:Supply Chain Pohořelice 3 Levis (CZM630.415... pavlias000@seznam.cz
CZ 10054699 Sabina Love 使用标识符 11380232... CZ:Supply Chain Pohořelice 3 Marks and Spencer... s.loveckova@seznam.cz
CZ 10054727 Tereza Holč 使用标识符 11805358... CZ:Supply Chain Pohořelice 3 Levis (CZM630.415... tholcapko@seznam.cz
我需要创建一个名为 "Error Type" 的列来满足条件:
- 如果 "Error" 列以 "The Identifier" 开头,则将值设为 "Duplicated"
- 如果列以 "The data" 开头,则将值设为 "Transaction"
最好的解决方法是什么?
编辑:
如果有许多不同的值,则创建用于映射的字典并在循环中设置值:
df=pd.DataFrame({'Error':['The Identifier 1','The Identifier 3','The data dd','another data']})
#add all possible values
mapping = {'The Identifier': 'Duplicated','The data':'Transaction'}
df['Error'] = df['Error'].str.strip()
for k, v in mapping.items():
df.loc[df['Error'].str.startswith(k), 'new'] = v
print (df)
Error new
0 The Identifier 1 Duplicated
1 The Identifier 3 Duplicated
2 The data dd Transaction
3 another data NaN
我有以下数据框:
CZ 10054609 Veronika Fi 使用标识符 11380151... CZ:Supply Chain Pohořelice 1 Henkel Cosmeticos... verca.fialova.2001@gmail.com
CZ 10054620 Radmila Val 使用标识符 11380126... CZ:Supply Chain Pohořelice 1 Henkel VAS (CZM63... rvalova1@seznam.cz
CZ 10054728 Pavel Pecka 使用标识符 11805326... CZ:Supply Chain Pohořelice 3 Levis (CZM630.415... pavlias000@seznam.cz
CZ 10054699 Sabina Love 使用标识符 11380232... CZ:Supply Chain Pohořelice 3 Marks and Spencer... s.loveckova@seznam.cz
CZ 10054727 Tereza Holč 使用标识符 11805358... CZ:Supply Chain Pohořelice 3 Levis (CZM630.415... tholcapko@seznam.cz
我需要创建一个名为 "Error Type" 的列来满足条件:
- 如果 "Error" 列以 "The Identifier" 开头,则将值设为 "Duplicated"
- 如果列以 "The data" 开头,则将值设为 "Transaction"
最好的解决方法是什么?
编辑:
如果有许多不同的值,则创建用于映射的字典并在循环中设置值:
df=pd.DataFrame({'Error':['The Identifier 1','The Identifier 3','The data dd','another data']})
#add all possible values
mapping = {'The Identifier': 'Duplicated','The data':'Transaction'}
df['Error'] = df['Error'].str.strip()
for k, v in mapping.items():
df.loc[df['Error'].str.startswith(k), 'new'] = v
print (df)
Error new
0 The Identifier 1 Duplicated
1 The Identifier 3 Duplicated
2 The data dd Transaction
3 another data NaN