【问题标题】:How to sample on condition with pandas?如何在条件下与熊猫一起取样?
【发布时间】:2015-09-20 18:59:18
【问题描述】:

我有一个数据框 df,如下所示:

   Col1      Col2
0  1         T
1  1         B 
2  3         S
3  2         A
4  1         C
5  2         A
etc...

我想创建两个数据框:df1 是 10 行的随机样本,因此 Col2=='T'。 df2 是 df 减去 df1 中的行数。

【问题讨论】:

  • Col2==T 的 10 行被选中并放入 df1。 df2 if then 等于原始数据帧 (df) 减去 df1 中的行

标签: python pandas sampling


【解决方案1】:

假设你有一个唯一索引的数据框(如果你没有,你可以简单地做.reset_index(),应用这个,然后在事后set_index),你可以使用DataFrame.sample。 [实际上,即使框架没有有唯一索引,你应该可以使用sample,但是你不能使用下面的方法来获取df2。]

请注意,我在此示例中使用 A 而不是 T,因为 A 是您给出的示例中 Col2 的唯一重复值,我只会随机选择 1 而不是 10。

>>> df1 = df[df.Col2 == "A"].sample(1)
>>> df2 = df[~df.index.isin(df1.index)]
>>> df1
   Col1 Col2
3     2    A
>>> df2
   Col1 Col2
0     1    T
1     1    B
2     3    S
4     1    C
5     2    A

【讨论】:

    猜你喜欢
    • 2019-04-02
    • 2020-07-19
    • 2021-07-21
    • 2018-07-05
    • 2022-12-11
    • 2020-11-20
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    相关资源
    最近更新 更多