了解如何在"if then else"语句中组合"包含""upper&



我有一个熊猫数据帧,我想在其中创建一个组合其他列值的新列。 (我使用 if then 语句编写它只是为了显示我喜欢获得的东西(:

if upper([Url]) cointains 'A' THEN "AAA"
ELSE IF (upper([Url]) cointains 'B' AND upper([Url]) NOT cointains 'Z') THEN "BBB"
ELSE IF  (upper([Url]) cointains 'B' AND upper([Url]) cointains 'Z') THEN "CCC"
ELSE UPPER(VAR_NAME)
END AS NEW_VAR

可以使用熊猫吗? 我期望的是了解如何在if then else语句中组合containsupper方法以创建新变量

您可以将numpy.select().str访问器一起使用:

df['NEW_VAR'] = np.select( 
[df.Url.str.upper().str.contains('A'),
df.Url.str.upper().str.contains('B') & ~df.Url.str.upper().str.contains('Z'),
df.Url.str.upper().str.contains('B') & df.Url.str.upper().str.contains('Z')],    
['AAA', 'BBB', 'ZZZ'],  
df.Url.str.upper())

有了df = pd.DataFrame({'Url': ['a', 'bb', 'bz', 'c']}),您将获得:

Url NEW_VAR
0   a     AAA
1  bb     BBB
2  bz     ZZZ
3   c       C

最新更新