如何从Pandas的fullname列中提取名字与剩余姓名部分?
拆分Pandas DataFrame的fullname列为给定名和剩余姓名部分
问题说明
有一个包含fullname列的Pandas DataFrame,数据如下:
fullname Andres Kirk Polsky Anna Lorensen Polsman Uirch
需要生成两个新列,实现如下效果:
fullname given rest_name Andres Kirk Polsky Andres Kirk Polsky Anna Lorensen Polsman Uirch Anna Lorensen Polsman Uirch
尝试使用str.split(' ', expand=True)无法得到预期结果。
解决方案
利用str.split的n参数限制拆分次数,仅在第一个空格处拆分,就能精准分离出第一个词作为given列,剩余内容合并为rest_name列。
代码实现
import pandas as pd # 构造示例DataFrame df = pd.DataFrame({ 'fullname': ['Andres Kirk Polsky', 'Anna Lorensen Polsman Uirch'] }) # 仅拆分第一个空格,拆分结果转为DataFrame split_data = df['fullname'].str.split(' ', n=1, expand=True) # 赋值给新列 df['given'] = split_data[0] df['rest_name'] = split_data[1] print(df)
关键说明
n=1:指定只在第一个出现的空格处拆分字符串,避免把后续所有空格都拆分导致内容零散。expand=True:将拆分后的结果转化为包含两列的DataFrame,直接对应我们需要的given和rest_name内容。
内容的提问来源于stack exchange,提问作者datashout
相关产品推荐
相关产品推荐

