为了账号安全,请及时绑定邮箱和手机立即绑定

根据其他两列的条件文本值在 pandas 中创建一个新列

根据其他两列的条件文本值在 pandas 中创建一个新列

慕容森 2023-10-05 16:40:19
如何根据其他两列的条件文本值在 pandas 中创建新列?初始表 -Specialty   Category  Spec A      Cat A     Spec A      Cat B     Spec A      Cat CSpec A      Cat DSpec B      Cat A     Spec B      Cat B     Spec B      Cat C Spec B      Cat D    条件逻辑 = Cat A 和 Cat D 未重命名为“其他” Cat B 和 Cat C 重命名为“其他” 专业没有变化。新列用于根据上述逻辑连接专业和类别。该表将输出到 -Specialty   Category  Specialty_groupSpec A      Cat A     Spec A Cat A       Spec A      Cat B     Spec A OtherSpec A      Cat C     Spec A OtherSpec A      Cat D     Spec A Cat D Spec B      Cat A     Spec B Cat ASpec B      Cat B     Spec B OtherSpec B      Cat C     Spec B OtherSpec B      Cat D     Spec B Cat D
查看完整描述

1 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

# create a mask based on your logic

mask = (df['Category'] == 'Cat A') | (df['Category'] == 'Cat D')

# assign a values to a new column using loc and join

df.loc[mask, 'Specialty_group'] = df[mask].agg(' '.join, axis=1)

# assign values to a column using loc with the opposite of your logic

df.loc[~mask, 'Specialty_group'] = df[~mask]['Specialty']+' Other'



  Specialty Category Specialty_group

0    Spec A    Cat A    Spec A Cat A

1    Spec A    Cat B    Spec A Other

2    Spec A    Cat C    Spec A Other

3    Spec A    Cat D    Spec A Cat D

4    Spec B    Cat A    Spec B Cat A

5    Spec B    Cat B    Spec B Other

6    Spec B    Cat C    Spec B Other

7    Spec B    Cat D    Spec B Cat D


查看完整回答
反对 回复 2023-10-05
  • 1 回答
  • 0 关注
  • 113 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信