在Pandas中向字符串拆分命令添加函数

JD2*_*775 4 python pandas

我有一个数据框,其中包含20个左右的列.其中一列称为'director_name',其值为'John Doe'或'Jane Doe'.我想将其拆分为2列,'First_Name'和'Last_Name'.当我运行以下操作时,它按预期工作,并将字符串拆分为2列:

data[['First_Name', 'Last_Name']] = data.director_name.str.split(' ', expand 
= True) 
data

First_Name    Last_Name
John          Doe
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但是当我在'director_name'下有NULL(NaN)值时,它不起作用.它会引发以下错误:

'Columns must be same length as key'
Run Code Online (Sandbox Code Playgroud)

我想添加一个函数来检查值!= null,然后执行上面列出的命令,否则为First_Name和'Last_Name'输入'NA'

有什么想法我会怎么做?

编辑:

我刚检查了文件,我不确定NULL是否是问题.我有一些长3-4个字符串的名字.即

John Allen Doe
John Allen Doe Jr
Run Code Online (Sandbox Code Playgroud)

也许我不能把它分成First_Name和Last_Name.

Hmmmm

Vai*_*ali 7

这是一种方法是拆分并选择说出前两个值作为名字和姓氏

    Id  name
0   1   James Cameron
1   2   Martin Sheen
2   3   John Allen Doe
3   4   NaN


df['First_Name'] = df.name.str.split(' ', expand = True)[0]
df['Last_Name'] = df.name.str.split(' ', expand = True)[1]
Run Code Online (Sandbox Code Playgroud)

你得到

    Id  name            First_Name  Last_Name
0   1   James Cameron   James       Cameron
1   2   Martin Sheen    Martin      Sheen
2   3   John Allen Doe  John        Allen
3   4   NaN             NaN         None
Run Code Online (Sandbox Code Playgroud)