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

如何使用 pandas 从列中的列表中提取元素?

如何使用 pandas 从列中的列表中提取元素?

温温酱 2023-07-11 15:30:57
我想提取电子邮件活动的类型、月份和年份。列中的值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]


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

添加回答

举报

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