[英]How to randomly select rows from Pandas dataframe based on a specific condition?
[英]Pandas select rows based on randomly selected group from a specific column
我有一个 dataframe
> df = C1. C2. C3
> a. 1. 2
> a. 3. 5
> b. 6. 7
> c. 0. 1
> b. 2. 3
> a. 3. 1
我想从 C1 随机 select 一个值并取其所有行。 因此,如果我 select 'a' 我将拥有:
df = C1. C2. C3
a. 1. 2
a. 3. 5
a. 3. 1
我该怎么做? 谢谢
您将 dataframe(样本)打乱,然后在第一行 C1 中取出所有具有相同值的行:
df[df['C1'] == df.sample(frac=1).iloc[0,0]]
将Series.sample
用于具有C1
列随机值的一个元素系列,然后 select 索引中的所有值boolean indexing
:
df1 = df[df.C1.isin(df.C1.sample(n=1))]
print (df1)
C1 C2 C3
0 a. 1.0 2
1 a. 3.0 5
5 a. 3.0 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.