应用拆分并在Pandas列中获取结果的第二个元素,该列有时包含None,有时不会拆分为多个组件

hel*_*loB 4 python pandas

我正在查看一个如下所示的电子邮件发件人数据列:

from_name
----------
Joe Smith, VP at Corp
Alice Brown
None
Helpdesk, McRay's Store
Run Code Online (Sandbox Code Playgroud)

从这里,我想生成一个这样的列:

title_if_any
-------------
VP at Corp
None
None
McRay's Store
Run Code Online (Sandbox Code Playgroud)

我尝试过以下方法:

email_data['title_email_sender'] = email_data[email_data.from_name.isnull() == False][email_data.from_name.apply(lambda x: ',' in x)].from_name.apply(lambda x: x.split(',')[1])
Run Code Online (Sandbox Code Playgroud)

但是这会产生以下错误:

----> 2 email_data['title_email_sender'] = email_data[email_data.from_name.isnull() == False][email_data.from_name.apply(lambda x: ',' in x)].from_name.apply(lambda x: x.split(',')[1])

TypeError: argument of type 'NoneType' is not iterable
Run Code Online (Sandbox Code Playgroud)

我的第一个选择不应该删除所有NoneTypes吗?我怎样才能实现我想要的并解决上述问题?

谢谢!

shi*_*vsn 7

你可以做str.split():

In[53]:df['title_if_any']=df.from_name.str.split(',',expand=True)[1]

In[54]:df    
Out[54]: 
    0       VP at Corp
    1             None
    2             None
    3     McRays Store
    Name: 1, dtype: object
Run Code Online (Sandbox Code Playgroud)