【问题标题】:Pandas random sample with remove带移除的 Pandas 随机样本
【发布时间】:2016-10-03 15:20:13
【问题描述】:

我知道DataFrame.sample(),但我怎样才能做到这一点并从数据集中删除样本? (注意:AFAIK 这与替换抽样无关

例如这里是我想要实现的本质,这实际上不起作用:

len(df) # 1000

df_subset = df.sample(300)
len(df_subset) # 300

df = df.remove(df_subset)
len(df) # 700

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    如果您的索引是唯一的

    df = df.drop(df_subset.index)
    

    示例

    df = pd.DataFrame(np.arange(10).reshape(-1, 2))
    

    样本

    df_subset = df.sample(2)
    df_subset
    


    放下

    df.drop(df_subset.index)
    

    【讨论】:

    • 有没有使用DataFrame。 pop,丢弃样本?因为DataFrame。 pop 通常用于弹出列。如果我先转置我的 DF 怎么办?
    • @MMF 好主意。是的,您可以在转置的基础上工作并做到这一点。你启发了我去尝试别的东西。如果我能在下次会议之前完成它,我会在这里发布。
    • @MMF 同样,pop 似乎只接受单列名称。意思是,我不能轻易弹出多个。
    • 是的,我遇到了同样的问题。我弹出了多次,但后来我猜它不如 df.drop() 高效
    【解决方案2】:

    熊猫random sample

    train=df.sample(frac=0.8,random_state=200)
    test=df.drop(train.index)
    

    【讨论】:

      猜你喜欢
      • 2015-07-25
      • 1970-01-01
      • 1970-01-01
      • 2016-10-31
      • 2017-07-18
      • 2017-09-03
      • 2015-11-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多