我有一列不同语言的名字,输入的格式也不同。英语和汉语的名字似乎都有“,”作为分隔符。韩国人的名字有“.”作为分隔符,而日本人的名字有“,”和“/”作为分隔符。我希望能够获得新的名称列
Name_old Language New_Name
Phillipe, Mr Johnson English Mr Johnson Phillipe
李, Mr 永 Mandarin Mr 永 李
김두한.Kim Do Han Korean Kim Do Han
Amori, Shinji/ あもりさせる / 由紀 Japanese Shinji Amori
我试过以下代码,但它只适用于英文和中文名称。我想我可能需要根据language列过滤行,然后拆分字符串。谢谢你的帮助
splitname = df1["Name_old"].str.split(",", n = 1, expand = True)
# create first name column based on values after comma in Name_old column
df1["First_Name"]= splitname[1]
# create first name column based on values before comma in Name_old column
df1["Last_Name"]= splitname[0]
#concatenate the first name and last name
df1['New_Name'] = df1['First_Name'] +' '+ df1['Last_Name']
一种方法是根据
Language
的条件使用np.select
:可以使用正则表达式拆分字符串:
r'[,\/.]'
表示三者中任意一个的字符串:,
、/
或.
输出为:完整示例:
输出:
相关问题 更多 >
编程相关推荐