HMK*_*HMK 4 python dataframe pandas
假设我有一个表格的数据框,rn
行索引在哪里
A1 | A2 | A3
-----------------
r1 x | 0 | t
r2 y | 1 | u
r3 z | 1 | v
r4 x | 2 | w
r5 z | 2 | v
r6 x | 2 | w
Run Code Online (Sandbox Code Playgroud)
如果我想对这个数据框进行子集化,使得 A2 列只有唯一值,我会使用df.drop_duplicates('A2')
. 但是,这只会保留唯一值的第一行并删除其余部分。对于此示例,只有 r2 和 r4 将在子集中。
我想要的是随机选择具有重复值的任何行而不是第一行。因此,对于此示例,A2 == 1
随机选择for 、r2 或 r3 或随机选择A2 == 2
r4、r5 或 r6 中的任何一个。我将如何实施这个?
首先对 DataFrame 进行 Shuffle,然后删除重复项:
df.sample(frac=1).drop_duplicates(subset='A2')
Run Code Online (Sandbox Code Playgroud)
如果行的顺序很重要,您可以将其sort_index
用作@c???s???? 建议:
df.sample(frac=1).drop_duplicates(subset='A2').sort_index()
Run Code Online (Sandbox Code Playgroud)