gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 21:09:26 24 4
gpt4 key购买 nike

我有一个数据集,其中两列的字符串值为“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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com