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

我想提取电子邮件活动的类型、月份和年份。列中的值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])


温温酱
浏览 164回答 1
1回答

慕娘9325324

您可以使用expand参数进行拆分,然后一次性设置所有三列:df[['campaign_type', 'campaign_month', 'campaign_year']] = \    df['campaign'].str.split('-', expand=True)df输出:              campaign campaign_type campaign_month campaign_year0  Standard-Mar19-2020      Standard          Mar19          2020PS您的错误表明某些campaign_info值很可能不在表单中type-month-year,因此没有拆分为多个字符串的列表,因此尝试获取列表中的第二个值失败。否则你的方法也应该没问题。您可以使用以下命令找到那些有问题的记录df[df['campaign'].str.split('-').str.len() != 3]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python