识别重复项并选择要删除的重复行

时间:2018-11-03 00:20:00

标签: python pandas pandas-groupby

我需要帮助来清理我的数据集。在一组唯一的ID中,有重复的标题/艺术家名称,而在这些重复的名称中,有一行不包含“专辑”列的任何值/文本。

我首先要做的是在“混合ID”子集中标识重复项,然后在“相册”列中删除没有任何值/文本的行。

我无法解决这个问题,任何帮助都很棒!

DF:

enter image description here

输出: enter image description here

1 个答案:

答案 0 :(得分:0)

这就是我要做的事情:

import pandas as pd

# Partial dataframe 
df  = pd.DataFrame({'Mix_id':[1234567, 1234567, 1234567, 1234567, 1234567],
                   'Title':['Hello its me', 'Music', 'Evolve', 'Evolve', 'Signs'],
                   'Artist':['Martin', 'Ones and Twos', 'Julian', 'Julian', 'Julian'],
                   'Album':["", "", "", "Evolve", ""]})

初始数据框:

enter image description here

df = df.groupby(['Mix_id', 'Title', 'Artist'], as_index=False).apply(lambda x : x[x.Album.str.len() == x.Album.str.len().max()])
df.reset_index(level=0, drop=True, inplace=True)
df.sort_index()

输出:

enter image description here