在熊猫中合并单元而不会丢失信息

时间:2019-10-04 09:53:50

标签: python 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)

但是结果是删除了“ title”列的Pandas系列,所以我丢失了信息。

1 个答案:

答案 0 :(得分:1)

您尝试过

model = "StudentName=Test&SchoolType=1b&SchoolType=26a"

?那给你

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)

,基本上是您为this question找到的答案的稍作修改的版本。