2017-02-10 104 views
0

到目前为止真的很喜欢熊猫,这里是我无法解决的事情!pandas DataFrame - 为每个唯一索引计算列的平均值,而不用硬编码每个索引标签?

我在这里显示了一些简单的数据框,用于某些航班数据。运营商是像Am这样的运营商。空气。和Uni。空气。

print (df) 

Carrier | Num_Passengers 
AA  40 
AA  35 
AA  64 
UA  40 
UA  25 
UA  56 

在我的数据框中,carrier是左侧垂直索引,乘客数是我列在列上的索引。

我已经确定由下列各唯一索引:

carriers = df.index.unique() 

这给了我

array(['AA','UA'], dtype=object) 

我会再像计算平均值Num_Passengers为每个唯一索引(AA和UA )没有明确地这样说。一些伪代码,因为我不知道我怎么会做它:

for "carrier" in carriers: 
    make a new dataframe or array containing only the passengers 
    for "carrier" and calculate the average 

,我真的一直在挣扎与这一个,一派上下互联网。也许我的措辞是错误的,但他们必须在那里找到答案!

+0

我想你想'groupby'。在熊猫文档中查找它。 – BrenBarn

+0

@BrenBarn非常快速的回答。我从来没有用过groupby,但我以前见过。我现在会研究它,谢谢。 – AlexDoesScience

回答

0

您正在寻找groupby您的索引,然后获取平均乘客数量。

df.groupby(level=0).mean() 

      Num_Passengers 
Carrier     
AA   46.333333 
UA   40.333333 
+0

这比我刚刚写的for循环好得多。熊猫是惊人的,并感谢你知道这一点! – AlexDoesScience

相关问题