Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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 优化操作:组合名字/中间名/姓氏列_Python_Pandas_Lambda_Apply - Fatal编程技术网

Python 优化操作:组合名字/中间名/姓氏列

Python 优化操作:组合名字/中间名/姓氏列,python,pandas,lambda,apply,Python,Pandas,Lambda,Apply,让我们假设我取了一个名称示例,例如由单个字段分隔的名称: indx First Name Middle Name Last Name 0 CHARITIXAN K.R., NICHOLS 1 None Johnny-Boy CHAVEZ 2 ISAAC None ESPARZA 3 MICHAEL nan 4 An

让我们假设我取了一个名称示例,例如由单个字段分隔的名称:

indx  First Name   Middle Name     Last Name
0     CHARITIXAN   K.R.,           NICHOLS
1           None   Johnny-Boy      CHAVEZ
2          ISAAC   None            ESPARZA
3        MICHAEL   nan             
4         Andrew                   Pfaff
我们还假设这些数据被格式化为数据帧df和 已通过.replace方法对所有 保留的值仅为已占用字符串或空字符串

indx  First Name   Middle Name     Last Name
0     CHARITIXAN   K.R.,           NICHOLS
1                  Johnny-Boy      CHAVEZ
2          ISAAC                   ESPARZA
3        MICHAEL               
4         Andrew                   Pfaff
我想正确地将一个给定名称的所有部分与一个单独的名称结合起来 每个名称段之间的空格。根据我的研究和实施, 我找到的最好的解决方案是——重新使用的那个。这是最佳的方式还是存在 这件案子有更好的办法吗

我最后的方法是:

df['full_name']=df[['First Name', 'Middle Name', 'Last Name']].apply(lambda x: re.sub(' +', ' ', ' '.join(x)), axis=1)
您可以通过以下方式申请加入:

df['full_name'] = df[['First Name','Middle Name', 'Last Name']].apply(lambda x: ' '.join(x), axis=1)

你能不能把它们加在一起df['full_name']=df['First name']+'+df['Middle name']+'+df['Last name']@kenan如果中间名或姓氏为空,那么这不仅仅是一个空格。假设名称是df[names]列的列表。applylambda x:x.str.catsep='',axis=1