pandas Python:如何使用datetime随机化drop_duplicates?

u3r8eeie  于 2022-12-16  发布在  Python
关注(0)|答案(2)|浏览(166)

请原谅我缺乏理解--我对Python编程非常陌生。
假设我有以下代码:

df_filtered.drop_duplicates(subset=['date'], keep='first', inplace=True)

我如何随机删除重复的,而不是总是选择第一个?类似于:

df_filtered.drop_duplicates(subset=['date'], keep='random', inplace=True)
p5cysglq

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是随机的!
随机示例

col1 col2
0   A   1
2   B   3
zpjtge22

zpjtge222#

根据文档,唯一可用的选项如下

但是,您可以采用多阶段方法。
子集全部重复使用

dups =df[df.duplicated(subset=['column'],keep=False)]

子集全部不重复使用

nodups = df[~df.duplicated(subset=['column'],keep=False)]

随机抽样dups

dups = dups.sample(frac=, replace=True/False, random_state=1)

通过concat合并dups和nondups

pd.concat([dups, nondups])

相关问题