我有一个numpy数组的形状(2,2,1000)代表收入组,年龄组和1000个观察样本每组。
我尝试使用for循环来计算汇总表。
我希望收到以下类型的表格:
这是我的代码:
import numpy as np
import pandas as pd
elasticity = np.random.rand(2,2,1000)
print(elasticity.shape)
income = ['i0','i1']
age_gr= ['<=18','>18']
data=[]
df = pd.DataFrame()
for i in range(len(age_gr)):
row=[]
for j in range((len(income))):
row.append(np.mean(elasticity[i,j,:]))
row.append(np.std(elasticity[i,j,:]))
data.append(row)
data
df = pd.DataFrame(data)
df
但是我的for循环有问题,我总是得到4x4的平均值和标准差表,而不是我想要的2x4。我做错了什么?
2条答案
按热度按时间fcg9iug31#
data.append(row)
位于for j
循环中,而不是for i
循环中。只要取消一次标签:
balp4ylt2#
您遇到的问题是
row = []
的位置。你的行当前在循环中的样子是:
解决方案应该是简单地将
row = []
移动到第二个for
-循环中。这样,您将在data
上附加4次2项列表,而不是之前的解决方案。