繁体   English   中英

Pandas select 行基于从特定列中随机选择的组

[英]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.

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