【发布时间】:2021-09-09 21:06:35
【问题描述】:
我有一个大众pandasDataFramedf:
year count
1983 5
1983 4
1983 7
...
2009 8
2009 11
2009 30
我的目标是每year 100 次采样 10 个数据点,并获得每年count 的均值和标准差。 count 值的符号是随机确定的。
我想为每个year 随机抽取 10 个数据,可以通过以下方式完成:
new_df = pd.DataFrame(columns=['year', 'count'])
ref = df.year.unique()
for i in range(len(ref)):
appended_df = df[df['year'] == ref[i]].sample(n=10)
new_df = pd.concat([new_df,appended_df])
然后,我随机为count 分配一个符号(这样count 可能是正数或负数)并将其重命名为value,可以通过以下方式完成:
vlist = []
for i in range(len(new_df)):
if randint(0,1) == 0:
vlist.append(new_df.count.iloc[i])
else:
vlist.append(new_df.count.iloc[i] * -1)
new_data['value'] = vlist
获取每个year 的平均值和标准差非常简单:
xdf = new_data.groupby("year").agg([np.mean, np.std]).reset_index()
但我似乎找不到最佳方法来尝试每个year 进行 100 次采样、存储平均值并获得每年这 100 个平均值的平均值和标准差。我可以考虑使用for 循环,但它会占用太多的运行时间。
基本上,输出应该是以下形式(values 在这里是任意的):
year mean_of_100_means total_sd
1983 4.22 0.43
1984 -6.39 1.25
1985 2.01 0.04
...
2007 11.92 3.38
2008 -5.27 1.67
2009 1.85 0.99
我们将不胜感激。
【问题讨论】:
-
你能发布一个我们可以复制和运行的示例 DataFrame 吗?
-
你为什么要给
count分配一个随机符号?
标签: python pandas dataframe mean standard-deviation