Pandas 重复一个实验并将结果存储在数据帧中

Pandas 重复一个实验并将结果存储在数据帧中,pandas,Pandas,我有一张单子。我可以从这个列表中随机抽取一个样本。我可以对该示例应用一个函数。我可以改变样品的大小。我可以将每个样本大小的结果存储在新行中。像这样: import pandas as pd import random List = range(1,10) def fun(Many_Things): Items = random. sample(List, Many_Things) return sum(Items) df = pd.DataFrame({'Things' :

我有一张单子。我可以从这个列表中随机抽取一个样本。我可以对该示例应用一个函数。我可以改变样品的大小。我可以将每个样本大小的结果存储在新行中。像这样:

import pandas as pd
import random

List = range(1,10)

def fun(Many_Things):
    Items = random. sample(List, Many_Things)
    return sum(Items)

df = pd.DataFrame({'Things' : range(1,5)})

df['Sample'] = df['Things'].apply(lambda x: fun(x))

print(df)
其中:

   Things  Sample
0       1       2
1       2      14
2       3      16
3       4      19
当我再次运行它时,我得到:

   Things  Sample
0       1       7
1       2      11
2       3      16
3       4      24
   Things  Sample
0       1       3
1       2      16
2       3      19
3       4      23
当我再次运行它时,我得到:

   Things  Sample
0       1       7
1       2      11
2       3      16
3       4      24
   Things  Sample
0       1       3
1       2      16
2       3      19
3       4      23

我想重复多次,每次都将结果存储在一个新的列中。

您可以创建一个
听写理解
,并作为
**kwarg
传递到:

import pandas as pd
import random

List = range(1,10)
def fun(Many_Things):
    Items = random. sample(List, Many_Things)
    return sum(Items)

df = pd.DataFrame({'Things' : range(1,5)})

d = {f"Sample{i+1}": df.Things.apply(lambda x: fun(x)) for i in range(5)}

df.assign(**d)
[外]

尝试:

import random
List = range(1,10)

def fun(Many_Things):
    Items = random. sample(List, Many_Things)
    return sum(Items)

df = pd.DataFrame({'Things' : range(1,5)})

for i in range(5):
    df['Sample'+str(i)]= df['Things'].apply(fun)

print(df)