【发布时间】:2015-09-04 19:37:57
【问题描述】:
我是 Python 新手,需要您的帮助。我需要计算一个非常大的数组中特定列的平均值。我想使用 numpy.average 函数(对任何其他建议开放),但无法找到通过标题选择列的方法(例如 Flavor_Score 列的平均值):
Beer_name Tester Flavor_Score Overall_Score
Coors Jim 2.0 3.0
Sam Adams Dave 4.0 4.5
Becks Jim 3.5 3.5
Coors Dave 2.0 2.2
Becks Dave 3.5 3.7
我是否必须转置数组(似乎 pandas 和 numpy 中的行有很多函数,但列的函数相对较少(当然我可能错了)才能完成列的平均计算?
同一个数组的第二个问题:是使用第一个问题的答案(计算平均 Flavor_Score)来计算特定啤酒(不同测试者之间)的平均 Flavor_Score 的最佳方法?
Beer-test="Coors"
for i in Beer_Name():
if i=Beer_test: # recurring average calculation
else: pass
我希望有一个内置函数。
非常感谢您的帮助!
【问题讨论】:
-
要计算特定列的平均值,请执行
df['Flavor_Score'].mean(),对于特定啤酒:df[df['Beer_Name'] == 'Coors', 'Flavor_Score'].mean() -
mean() OR average()?
-
@EdChum - 第一行代码完美运行! MEAN 函数是计算平均值还是平均值?第二行代码产生了一个错误它不喜欢 df [df ['Beer_Name']... 我用 df[df.beer_name == "Coors"].Flavor_Score.mean() 替换它并且它起作用了!谢谢你,EdChum!
-
作为我的问题的延伸:打印列表中所有独特啤酒的 Flavor_Score 平均值而不是选择的一种啤酒的最佳方法是什么?我使用 pd.unique(df.beer_name.ravel()) 作为数组创建了一个唯一啤酒名称列表,然后使用 Beer_Name_L=Beer_Name_Arr.tolist() 在列表中传输数组(不确定我是否需要这样做: ))。现在我尝试使用 for in in xrange(len(Beer_Name_L)): beername=Beer_Name_L(i) print df[df.beer_name==beername].Flavor_Score.mean() 打印但收到错误消息“TypeError: 'list'对象不可调用
-
@Toly 您能否检查答案以关闭问题?提前致谢。
标签: arrays numpy pandas average calculated-columns