python - 如何在不丢失数据框的情况下在 Pandas 中编辑姓氏、名字的顺序

标签 python pandas

我有一个数据集,其中两列的字符串值为“LastName, FirstName”。我很乐意用“FirstName Last Name”替换它们。他们是这样的:

      conductorName        composerName  conduct_count
0  Abbado, Claudio         Berg,  Alban                2
1  Abbado, Claudio     Berlioz,  Hector                1
2  Abbado, Claudio  Bernstein,  Leonard                1
3  Abbado, Claudio    Brahms,  Johannes                2
4  Abbado, Claudio     Bruckner,  Anton                1

我试过: data = ["".join(n.split(", ")[::-1]) for n in data["composerName"]]

这很好地给了我一个 composerName 列表,但现在我丢失了 pandas 数据框(这里是错误 ----> 1 data.head() AttributeError: 'list' 对象没有属性 'head')

我也试过: 数据中的 n ["composerName"]: "".join(n.split(", ")[::-1])

但是,这不会改变 LastName 和 FirstName 的顺序

我很乐意保留 pandas 数据框以供分析。我感谢任何帮助。谢谢!!

最佳答案

您可以使用向量化的 str.split 在分隔符上拆分,然后使用切片语义反转列表内容,然后使用 str.join 再次加入:

In [35]:
df['ComposerFirstLastName'] = df['composerName'].str.split(', ').str[::-1].str.join(' ')
df['ConductorFirstLastName'] = df['conductorName'].str.split(', ').str[::-1].str.join(' ')
df
Out[35]:
          composerName        conductorName  conductor_count   FirstLastName  \
index                                                                          
0      Abbado, Claudio         Berg,  Alban                2  Claudio Abbado   
1      Abbado, Claudio     Berlioz,  Hector                1  Claudio Abbado   
2      Abbado, Claudio  Bernstein,  Leonard                1  Claudio Abbado   
3      Abbado, Claudio    Brahms,  Johannes                2  Claudio Abbado   
4      Abbado, Claudio     Bruckner,  Anton                1  Claudio Abbado   

      ComposerFirstLastName ConductorFirstLastName  
index                                               
0            Claudio Abbado             Alban Berg  
1            Claudio Abbado         Hector Berlioz  
2            Claudio Abbado      Leonard Bernstein  
3            Claudio Abbado        Johannes Brahms  
4            Claudio Abbado         Anton Bruckner 

关于python - 如何在不丢失数据框的情况下在 Pandas 中编辑姓氏、名字的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38330278/

相关文章:

python - simplejson和python标准库中的模块主要区别是什么?

pandas 添加基于分组的订单列

python - 显示运行 python 脚本的进度条

python - 将每小时数据重新采样为 6 小时

python - Pandas 时间戳索引到日期字符串列表

python - Unicode解码错误: 'utf8' codec can't decode byte - Euro Symbol

python - 将 SQL 查询转换为 mongo 查询

python - 如何将 gensim 创建的 fasttext 模型导出到二进制文件?

python - 查找元素更改值 Pandas 数据框的索引