我有一个包含三列的数据框架:Subchannel
、Campaign
和ID
Subchannel Campaign ID
PROMO FLASHSALES X123
PROMO PERCENTOFF Y123
我想写一个python代码,如果子通道以"PRO"
开头,那么应该在数据帧EML_LOOKUP
中创建一个与列ID
值相同的新列。下面是我尝试的代码,但它不起作用。请帮忙
if EML_LOOKUP['Subchannel'].str.startswith("PRO"):
EML_LOOKUP['New_Column'] = EML_LOOKUP['ID']
使用
str.startswith
进行布尔索引:您可以使用
np.where()
,它以矢量化的方式工作,并且比apply()
更快:在本例中,如果子通道不是以PRO开头,我们将用
NaN
填充新列,否则,我们将设置ID值下面是一个完整的工作示例:
应用建议的解决方案后:
我们得到这个输出:
如果存在多个条件,我们可以根据我们希望使用的逻辑,使用括号分隔并由布尔运算符
&
或|
连接的条件相加:输出:
相关问题 更多 >
编程相关推荐