python pandas迭代两个不同列的行并返回一次重复的重复和单行中重复值的对应值

问题描述 投票:0回答:2

例如,我有一个.csv文件,其中包含成千上万行,如下所示:

year,name
1992,Alex
1992,Anna
1993,Max
1993,Bob
1993,Tom

等等...

我希望我的输出是:

   year           name
   1992     Alex, Anna
   1993  Max, Bob, Tom

这看起来很简单,但我无法在单行中用逗号','附加相应的行,

python pandas loops csv
2个回答
0
投票

您可以通过使用groupby和聚合来实现。试试下面的代码:

df = df.groupby("year").agg({
    "year":"first",
    "name":", ".join
                          })

您可以通过忽略索引将数据框值保存到csv中

df.to_csv("output.csv",index=False)

0
投票

这可能对您有帮助

df = df.groupby('year')['name'].unique().reset_index()
df['name'] = df['name'].apply(lambda x: ', '.join(x))

输出:

   year           name
0  1992     Alex, Anna
1  1993  Max, Bob, Tom
© www.soinside.com 2019 - 2024. All rights reserved.