Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用pandas从列中的列表中提取元素?_Python_Pandas_List_Mapping - Fatal编程技术网

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
。你的回答很有帮助!请提供一份报告。此外,除非绝对必要,否则请不要以图像形式共享信息。见:。