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)