我有一个熊猫数据帧,我想在其中创建一个组合其他列值的新列。 (我使用 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
语句中组合contains
upper
方法以创建新变量
您可以将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