我想提取电子邮件活动的类型、月份和年份。列中的值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])
1 回答
慕娘9325324
TA贡献1783条经验 获得超4个赞
您可以使用expand参数进行拆分,然后一次性设置所有三列:
df[['campaign_type', 'campaign_month', 'campaign_year']] = \
df['campaign'].str.split('-', expand=True)
df
输出:
campaign campaign_type campaign_month campaign_year
0 Standard-Mar19-2020 Standard Mar19 2020
PS您的错误表明某些campaign_info值很可能不在表单中type-month-year,因此没有拆分为多个字符串的列表,因此尝试获取列表中的第二个值失败。否则你的方法也应该没问题。您可以使用以下命令找到那些有问题的记录
df[df['campaign'].str.split('-').str.len() != 3]
添加回答
举报
0/150
提交
取消