繁体   English   中英

Pandas drop_duplicates 删除了太多行

[英]Pandas drop_duplicates drops too many rows

我有一个喜欢和不喜欢的歌曲的数据集。 有 8764 首喜欢的歌曲和 2213 首不喜欢的歌曲,总共 11000 行。 我有很多重复的歌曲,但我预计重复的歌曲最多约为 2000-5000 首歌曲,而且我很确定没有任何重复的不喜欢的歌曲。 但是,当我删除具有相同 track_name、first_artist_duration_ms 组合的重复行时,会删除 10904 行,只剩下 196 行。 生成的数据集从第 8700 行开始。 我哪里错了?

import pandas as pd
data = pd.read_csv('data 1.csv')

# Number of rows before dropping duplicates
print(len(data)) # 11000

# Number of duplicate rows
print(len(data.loc[data.duplicated(subset=['track_name', 'first_artist', 'duration_ms'])]['track_name'])) # 10904

# Dropping the duplicate tracks
data.drop_duplicates(subset=['track_name', 'first_artist', 'duration_ms'], keep='last', inplace=True)

# Number of unique rows
print(len(data)) # 196

您能否找到并提供一些您希望保留但没有保留的示例(提供的数据框不是屏幕截图)。 我测试了你的代码,它似乎对我有用。

data = {
    'Artist' : ['An Artist', 'Another Artist', 'Last Artist', 'An Artist'],
    'Track_Name' : ['A Track', 'Another Track', 'Last Track', 'A Track'],
    'Duration_MS' : [1000, 2000, 3000, 1000], 
    'Disliked_Artist' : ['A Disliked Artist', 'Another Disliked Artist', 'Last Disliked Artist', 'A Different Disliked Artist']
}
df = pd.DataFrame(data)
df.drop_duplicates(keep = 'last', subset=['Track_Name', 'Artist', 'Duration_MS'])

因此,更多信息可能有助于解决您可能遇到的任何疑问/问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM