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

2024-06-12 13:50:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一个程序,能够从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)

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


Tags: the数据信息标题albumtitlecdinterpret
1条回答
网友
1楼 · 发布于 2024-06-12 13:50:50

你试过了吗

import pandas as pd
df = 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  ...          Formats
0  Afrika Bambaataa And Family  ...    CD, RE, Album
1                      Sha Hef  ...        CD, Album
2                         Sido  ...  CD, Album, 2xLP

基本上是对this question的答案稍加修改的版本

相关问题 更多 >