2024-04-19 06:32:40 发布
网友
我有一个随机数据帧:
df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
我试着运行10次。为了创建一个数据帧,它是10个随机数据帧的总和,然后除以10得到平均值。你知道吗
一种解决方案是创建DataFrame列表,通过^{}连接在一起,并为每个第一级创建mean:
mean
np.random.seed(2019) dfs = [pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD')) for x in range(10)] df = pd.concat(dfs, keys=range(10)).mean(level=0) print (df) A B C D 0 50.96 50.05 53.74 54.56 1 55.38 46.49 53.57 46.51 2 50.53 48.29 45.57 47.64 3 49.69 51.70 55.11 48.40 4 52.57 50.28 53.17 47.20 5 50.49 48.60 48.29 50.49 6 45.26 54.60 47.78 46.62 7 50.92 48.27 56.30 47.28 8 47.57 46.51 52.90 46.07 9 45.54 49.72 49.38 45.71
或者用10倍多的行创建DataFrame,创建MultiIndex,然后再次获得mean:
DataFrame
MultiIndex
np.random.seed(2019) df = pd.DataFrame(np.random.randint(0,100,size=(100 * 10, 4)), columns=list('ABCD'), index=pd.MultiIndex.from_product([range(10), range(100)])) df = df.mean(level=0) print (df) A B C D 0 50.96 50.05 53.74 54.56 1 55.38 46.49 53.57 46.51 2 50.53 48.29 45.57 47.64 3 49.69 51.70 55.11 48.40 4 52.57 50.28 53.17 47.20 5 50.49 48.60 48.29 50.49 6 45.26 54.60 47.78 46.62 7 50.92 48.27 56.30 47.28 8 47.57 46.51 52.90 46.07 9 45.54 49.72 49.38 45.71
下面是一个函数,它接受n—运行此操作的次数。你知道吗
def func(n): df_total = 0 for i in range(n): df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD')) # to add similar dataframes just use + operator df_total = df_total + df return df_total / n
一种解决方案是创建DataFrame列表,通过^{} 连接在一起,并为每个第一级创建
mean
:或者用10倍多的行创建
DataFrame
,创建MultiIndex
,然后再次获得mean
:下面是一个函数,它接受n—运行此操作的次数。你知道吗
相关问题 更多 >
编程相关推荐