pandas当另一列与python中的值匹配时,只获取一列的平均值(浮点)

时间:2019-11-30 22:38:32

标签: python pandas numpy dataframe

让我说我有一个简单的桌子

manufacturer    marbles     shape     blah
A               169         square    yada
B               140         round     yada
C               420         round     yada
C               380         square    random
D               400         round     dontmatter
D               222         square    lkj
D                89         round     asdf

将其导入到索引为制造商的熊猫数据框中。在此示例中,我想要形状为圆形的大理石的平均值。我现在所拥有的返回了一个序列:

return df.loc[df['shape'] == 'round', ["marbles"]].mean()

我不希望返回一个系列,我只想要大理石的浮动平均值。

2 个答案:

答案 0 :(得分:2)

您正在传递一个列名列表,该列表将返回一个序列,因为该列表中的每个数字列都将具有均值。

df.loc[df['shape'] == 'round', "marbles"].mean()

传递标量列标签将返回浮点数。

答案 1 :(得分:2)

您可以掌握所有形状的平均值

df.groupby('shape', as_index=False).agg({'marbles': 'mean'})

shape    marbles
round    262.25
square   257.00