我想用python计算数组的平均值,使用不同的分组变量。例如,我想计算column1
中所有值的平均值,其中column2 == 2
和column3 == a + 3
。你知道吗
我尝试了for循环&if循环,但是它看起来非常复杂,而且对于我的数据维度来说太混乱了。有没有其他方法可以将特定条件下的数据分组,并分别计算每个条件组合的平均值?你知道吗
我在R中寻找group_by()
、summarise()
或aggregate()
这样的函数,只用于python。你知道吗
这是我迄今为止尝试的循环:
for j in range(0,len(e_data)): #iterate for each row in e_data
if e_data[j,6] == 0.0082:
if e_data[j,1] == ped1:
e_data[j,7] = mean(e_data[:,4][np.where((e_data[:,0] == (ped1+0.0082)) & (e_data[:,5] == i))])
elif e_data[j,1] == ped2:
e_data[j,7] = mean(e_data[:,4][np.where((e_data[:,0] == (ped2+0.0082)) & (e_data[:,5] == i))])
elif e_data[j,1] == ped3:
e_data[j,7] = mean(e_data[:,4][np.where((e_data[:,0] == (ped3+0.0082)) & (e_data[:,5] == i))]))
if e_data[j,6] == 0.001:
if e_data[j,1] == ped1:
e_data[j,7] = mean(e_data[:,4][np.where((e_data[:,0] == (ped1+0.001)) & (e_data[:,5] == i))])
elif e_data[j,1] == ped2:
e_data[j,7] = mean(e_data[:,4][np.where((e_data[:,0] == (ped2+0.001)) & (e_data[:,5] == i))])
elif e_data[j,1] == ped3:
e_data[j,7] = mean(e_data[:,4][np.where((e_data[:,0] == (ped3+0.001)) & (e_data[:,5] == i))])
if e_data[j,6] == 0.0235:
if e_data[j,1] == ped1:
e_data[j,7] = mean(e_data[:,4][np.where((e_data[:,0] == (ped1+0.0235)) & (e_data[:,5] == i))])
elif e_data[j,1] == ped2:
e_data[j,7] = mean(e_data[:,4][np.where((e_data[:,0] == (ped2+0.0235)) & (e_data[:,5] == i))])
我建议您签出Pandas,这正是您需要的。你知道吗
在python世界中,Pandas是您所描述的数据分析任务的最终解决方案。你知道吗
将数据(最好是.csv格式)导入熊猫后:
熊猫还提供
groupby
、describe
和agg
相关问题 更多 >
编程相关推荐