我想借助python中的nameparser
包映射一个拆分名称的函数。你知道吗
我使用的函数如下:
def extract_parts(name):
first, middle, last = (HumanName(name)).first,(HumanName(name)).middle, (HumanName(name)).last
return first, middle, last
数据帧类似于下面的NAMES
列,其中包含需要用nameparser
包拆分的名称。你知道吗
ID | NAMES | column
1 | Ben Jerry | I
2 | John Jack Joe | I
3 | Dr. Amelia von Lugenwitz | I
4 | Cristian Maria de Angel | I
5 | The CBA Company | C
6 | FBPTQ | C
我循环函数并尝试映射它,但它只返回最后一个值。我想这是有道理的。但是.apply()
不起作用,或者我不知道如何正确应用它。你知道吗
for index in range(len(file)):
if file["column"][index] == "A":
try:
file["COLUMN1"], file["COLUMN2"], file["COLUMN3"] = extract_parts(file["ORIGINAL"][index])
except TypeError as e:
print(e)
它应该返回一个数据帧:
ID | COLUMN1 | COLUMN2 | COLUMN3
1 | Ben | | Jerry
2 | John | Jack | Joe
3 | Amelia | | von Lugenwitz
4 | Cristian| Maria | de Angel
其中,COLUMN1
表示nameparser HumanName()提取的名字,COLUMN2
表示中间名,COLUMN3
表示姓氏。你知道吗
假设您的数据帧有一个
names
列,例如:可以使用zip将值解压到多个列中:
相关问题 更多 >
编程相关推荐