【问题标题】:Random sampling with replacement, increasing groupsize, sum and append in dataframe带替换的随机抽样,增加组大小,求和并追加到数据框中
【发布时间】:2022-11-15 10:50:39
【问题描述】:

我有一个数据框,我想重复采样,并进行替换。每次我对 df 进行采样时,我都想将样本 (n) 的大小增加一,直到 N。

例如:

id value_1 value_2
a 5 10
b 10 30
c 6 8
d 9 12

会导致类似

id's sum_of_value_1 sum_of_value_2
b 10 30
a, c 11 (5+6) 18 (10+8)
b,a,d 24 (10+5+9) 52 (30+10+12)

我可以用 for 循环来做到这一点,但不知道如何将求和和追加添加到查询中:

for n in range(200):
    print(df_groups.sample(n))

【问题讨论】:

  • 逻辑我不清楚,你能分解一个例子吗?
  • 编辑@mozway 以使其更清晰。谢谢

标签: python pandas for-loop


【解决方案1】:

您可以使用 pandas.Dataframe.aggregate 对所有列求和,然后使用 pandas.concat 将新的单行数据帧连接到新数据帧的末尾,您可以将其用作样本的累加器。

也许是这样的

acc = df_groups.sample(1).aggregate('sum')
for n in range(2, df_groups.shape[0]):
    pd.concat([acc, df_groups.sample(n).aggregate('sum')])

【讨论】:

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