Python 如何使用pandas从列中的列表中提取元素?
我想提取电子邮件活动的类型、月份和年份。Python 如何使用pandas从列中的列表中提取元素?,python,pandas,list,mapping,Python,Pandas,List,Mapping,我想提取电子邮件活动的类型、月份和年份。活动列中的值为字符串。我应用了split方法,然后尝试使用mapping函数将信息提取到不同的列。我不知道为什么活动月的映射失败 emailClick_-df['campaign_-info']=emailClick_-df['campaign'].str.split('-')) emailClick_-df['campaign_-type']=emailClick_-df['campaign_-info'].映射(lambda x:x[0]) email
活动
列中的值为字符串。我应用了split方法,然后尝试使用mapping函数将信息提取到不同的列。我不知道为什么活动月的映射失败
emailClick_-df['campaign_-info']=emailClick_-df['campaign'].str.split('-'))
emailClick_-df['campaign_-type']=emailClick_-df['campaign_-info'].映射(lambda x:x[0])
emailClick_-df['campaign_-month']=emailClick_-df['campaign_-info'].映射(lambda x:x[1])
emailClick_df['campaign_year']=emailClick_df['campaign_info'].映射(lambda x:x[2])
您可以使用展开
参数进行拆分,然后一次性设置所有三列:
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
注意:您的错误表明,很可能一些活动信息值的格式不是类型月-年
,因此没有拆分为多个字符串的列表,因此尝试获取列表中的第二个值失败。否则,你的方法也应该很好。您可以使用
df[df['campaign'].str.split('-').str.len() != 3]
您好,谢谢您的快速回复!我确实检查了一些campaign\u info
值的格式是否为type month year
。你的回答很有帮助!请提供一份报告。此外,除非绝对必要,否则请不要以图像形式共享信息。见:。