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

时间:2020-09-02 18:23:35

标签: python pandas list mapping

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

Error Message table

1 个答案:

答案 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