【发布时间】:2020-01-16 17:32:51
【问题描述】:
我有一个数据框,其中有一列包含个人姓名。名称并不总是采用相同的格式,因此我试图将名字和姓氏分成单独的列。例如,我可能会看到:
Smith John
Smith, John
Smith, John A
Smith John A
Smith John and Jane
一致的模式是姓氏在前。如何为姓氏创建两个单独的字段,然后是第二列,它不是姓氏。这是我到目前为止所拥有的
owners_df['normal_name'] = owners_df['name'].str.replace(', ', ' ')
owners_df['lastname'] = owners_df["normal_name"].str.split(' ', 1)[0]
owners_df['firstname'] = owners_df["normal_name"].str.split(' ', 1)[1]
问题是我收到一个错误“ValueError:值的长度与索引的长度不匹配”
【问题讨论】:
-
当您运行此
owners_df["normal_name"].str.split(' ', 1)[0]时,您只抓取了第一行,您是否能够生成minimal reproducible example 并发布您的预期输出?