我想提取电子邮件活动的类型,月份和年份。 campaign
列中的值是字符串。我应用了split方法,然后尝试使用映射功能将信息提取到不同的列。我不知道为什么campaign_month
提取映射失败。
emailClick_df['campaign_info'] = emailClick_df['campaign'].str.split('-')
emailClick_df['campaign_type'] = emailClick_df['campaign_info'].map(lambda x:x[0])
emailClick_df['campaign_month'] = emailClick_df['campaign_info'].map(lambda x:x[1])
emailClick_df['campaign_year'] = emailClick_df['campaign_info'].map(lambda x:x[2])
答案 0 :(得分:0)
您可以使用A
参数进行拆分,然后一次性设置所有三列:
expand
输出:
df[['campaign_type', 'campaign_month', 'campaign_year']] = \
df['campaign'].str.split('-', expand=True)
df
P.S。您的错误表明,很可能某些 campaign campaign_type campaign_month campaign_year
0 Standard-Mar19-2020 Standard Mar19 2020
值不是以campaign_info
的形式出现,因此没有拆分为多个字符串的列表,因此尝试在列表中获取第二个值失败。否则,您的方法也应该很好。您可以使用
type-month-year