【问题标题】:Add a random sample column to a dataframe将随机样本列添加到数据框中
【发布时间】:2020-04-06 15:34:12
【问题描述】:

假设我有一张这样的桌子:

| Name   | Age |
|--------|-----|
| Bob    | 2   |
| John   | 3   |
| Tim    | 4   |
| Ben    | 5   |
| Ella   | 4   |
| Sophie | 5   |
| Grace  | 6   |
| Bill   | 34  |
| Ron    | 23  |
| Harry  | 2   |

如何添加一个随机选择 10% 行的新列并添加一个 True 的新列?然后将其余设置为 False。像这样?

| Name   | Age |       |
|--------|-----|-------|
| Bob    | 2   | False |
| John   | 3   | False |
| Tim    | 4   | False |
| Ben    | 5   | True  |
| Ella   | 4   | False |
| Sophie | 5   | False |
| Grace  | 6   | False |
| Bill   | 34  | False |
| Ron    | 23  | False |
| Harry  | 2   | False |

【问题讨论】:

    标签: python pandas dataframe random


    【解决方案1】:

    你可以使用pandas的@​​987654321@函数:

    df.loc[df.sample(frac=0.1).index, "sample_column"] = True
    df["sample_column"] = df["sample_column"].fillna(False)
    

    【讨论】:

      【解决方案2】:

      使用pandas.DataFrame.sample

      df['flag'] = df.index.isin(df.sample(frac=0.1, random_state=1).index)
      

      df['flag'] = False
      df.loc[df.sample(frac=0.1, random_state=1).index, 'flag'] = True
      

      样本输出

      >>> df
            Name   Age   flag
      1      Bob   2.0  False
      2     John   3.0  False
      3      Tim   4.0   True
      4      Ben   5.0  False
      5     Ella   4.0  False
      6   Sophie   5.0  False
      7    Grace   6.0  False
      8     Bill  34.0  False
      9      Ron  23.0  False
      10   Harry   2.0  False
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-19
        • 2014-04-11
        • 1970-01-01
        • 2018-11-04
        • 2013-09-24
        • 2021-10-04
        • 1970-01-01
        • 2021-07-11
        相关资源
        最近更新 更多