gpt4 book ai didi

python - 删除 First_Name 行中的重复项,但附加 Last_Name 的集合

转载 作者:行者123 更新时间:2023-12-01 06:42:37 24 4
gpt4 key购买 nike

我搜索并查看了一堆与我的案例类似的问题,不幸的是他们似乎没有给我的案子提供解决方案,因为这里的解决方案主要基于 np.nan 值之一。但在这里我正在寻找为我提供 Last_Name 集合的解决方案。

我创建了一个小示例代码,如下所示:

我的数据集是:

dataset=pd.Dataframe({'First_Name':['John','John','John'], 
'Last_Name':['Mayers','Mountain','Walts']})

我一直在尝试做的是拥有一个“First_Name”为“John”的数据框,'Last_Name' 为 ['Mayers','Mountain','Walts'],这里我尝试创建一个名为 'Combine' 的新列。

我的代码如下:

import re

combine=[]

for i in range(0, len(dataset)):
m=re.match(dataset.loc[i]['Fisrt_Name'],dataset.loc[i]['First_Name'])
if m is not None:
combine.append(dataset.loc[i]['Last_Name'])
dataset.loc[i]['Combine']=combine
dataset

不幸的是,上面的代码没有打印出任何名为“Combine”的新列。如果我单独打印出组合,它将是一个列表:['Mayers','Mountain','Walts']如果我使用数据集['Combine']=combine,它会在“组合”中打印出三个单独的行,分隔上面的列表,但我想在一行中获得附加结果,然后我可以删除 First_Name 的重复行。我在这里搜索了很多类似的问题,但目前还没有找到有效的方法来解决这个问题。我也尝试了 sort_value'First_Name',但这并没有帮助我附加不重叠的“Last_Name”。有任何想法吗?非常感谢!

最佳答案

如果我理解正确的话,

df_new = df.groupby(['First_Name'])['Last_Name'].apply(lambda x : ','.join(x)).to_frame()
print(df_new)
Last_Name
First_Name
John Mayers,Mountain,Walts

或者正如 Jon 简洁指出的那样,我们可以在 apply 中使用原生 Python 方法 str.join

df_new  = df.groupby(["First_Name"])["Last_Name"].apply(','.join).to_frame()

关于python - 删除 First_Name 行中的重复项,但附加 Last_Name 的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59377635/

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