合并单元格而不丢失 Pandas 中的信息

我正在编写一个能够从 Discogs 音乐数据库中抓取专辑信息的程序。刮刀工作正常。


现在我有一个数据框,其中包含许多重复的艺术家和标题,其中格式单元格不同(例如,参见下面我的数据框片段中的“Sido”、“Ich und keine Maske”)。


    Interpret                    Title                              Formats

0   Afrika Bambaataa And Family  The Decade Of Darkness 1990-2000   CD, Album, RE

1   Sha Hef                      Out The Mud

2   Sido                         Ich Und Keine Maske                CD, Album

3   Sido                         Ich Und Keine Maske                2xLP, Album

...

现在我正在寻找一种方法来组合这些双重条目而不会丢失信息。有人可以给我一个提示吗?最终结果应如下所示:


    Interpret                    Title                              Formats

0   Afrika Bambaataa And Family  The Decade Of Darkness 1990-2000   CD, Album, RE

1   Sha Hef                      Out The Mud

2   Sido                         Ich Und Keine Maske                CD, Album, 2xLP

...

我努力了


r = dataframe.groupby('Interpret')['Formate'].apply(','.join)

但结果是删除了“标题”列的熊猫系列,所以我丢失了信息。


慕斯709654
浏览 170回答 1
1回答

qq_遁去的一_1

你有没有尝试过import pandas as pddf = pd.DataFrame({'Interpret': ['Afrika Bambaataa And Family', 'Sha Hef', 'Sido', 'Sido'],                   'Title': ['The Decade Of Darkness 1990-2000', 'Out The Mud', 'Ich Und Keine Maske', 'Ich Und Keine Maske'],                                                'Formats': ['CD, Album, RE', 'CD, Album', 'CD, Album', '2xLP, Album']})# remove duplicate interprets and merge formats...df1 = df.groupby('Interpret').agg(lambda x: ', '.join(x.unique())).reset_index()# now to get rid of duplicate entries in 'Formats' column...def drop_dupes(row):    l = row.split(', ')    return ', '.join(list(set(l)))df1['Formats'] = df1['Formats'].apply(drop_dupes)? 那给你Out[40]:                      Interpret  ...          Formats0  Afrika Bambaataa And Family  ...    CD, RE, Album1                      Sha Hef  ...        CD, Album2                         Sido  ...  CD, Album, 2xLP并且基本上是您为这个问题找到的答案的略微修改版本。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python