请原谅我缺乏理解--我对Python编程非常陌生。假设我有以下代码:
df_filtered.drop_duplicates(subset=['date'], keep='first', inplace=True)
我如何随机删除重复的,而不是总是选择第一个?类似于:
df_filtered.drop_duplicates(subset=['date'], keep='random', inplace=True)
p5cysglq1#
示例
data = {'col1': {0: 'A', 1: 'B', 2: 'B', 3: 'B', 4: 'A'}, 'col2': {0: 1, 1: 2, 2: 3, 3: 4, 4: 5}} df = pd.DataFrame(data)
df
col1 col2 0 A 1 1 B 2 2 B 3 3 B 4 4 A 5
代码
随机播放-〉删除重复项-〉按索引排序
out = df.sample(frac=1).drop_duplicates('col1').sort_index()
out是随机的!随机示例
out
col1 col2 0 A 1 2 B 3
zpjtge222#
根据文档,唯一可用的选项如下
但是,您可以采用多阶段方法。子集全部重复使用
dups =df[df.duplicated(subset=['column'],keep=False)]
子集全部不重复使用
nodups = df[~df.duplicated(subset=['column'],keep=False)]
随机抽样dups
dups
dups = dups.sample(frac=, replace=True/False, random_state=1)
通过concat合并dups和nondups
pd.concat([dups, nondups])
2条答案
按热度按时间p5cysglq1#
示例
df
代码
随机播放-〉删除重复项-〉按索引排序
out
是随机的!随机示例
zpjtge222#
根据文档,唯一可用的选项如下
但是,您可以采用多阶段方法。
子集全部重复使用
子集全部不重复使用
随机抽样
dups
通过concat合并dups和nondups