首页 文章

熊猫系列的平均值和标准差

提问于
浏览
5

我有一个清单:

data = [
{'A': [2.0, 3.0, 4.0, 5.0, 6.0], 'B':[27.0, 28.0, 29.0, 30.0], 'C': ['lic1'],
 'D': ['soy1'], 'E': ['foo1']},
{'A': [7.0, 11.0, 90.0, 43.0, 87.0], 'B':[27.0, 28.0, 29.0, 30.0], 'C': ['lic1'],
 'D': ['soy1'], 'E': ['foo1']},
# ... etc

]

“A”的数据是熊猫系列 . 我想计算'A'中数据的平均值和标准差(例如,A有几个记录):(均值=(2.0 3.0 4.0 5.0 6.0 7.0 11.0 90.0 43.0 87.0)/ len(A)= 25.8 )

1 回答

  • 5

    您可以将 list comprehensionconcat一起使用,然后使用 meanstd .

    要转换为 floatint ),请添加astype,如果问题仍然需要带有参数 errors='coerce'to_numeric .

    s = pd.concat([pd.Series(x['A']) for x in data]).astype(float)
    print (s)
    0     2.0
    1     3.0
    2     4.0
    3     5.0
    4     6.0
    0     7.0
    1    11.0
    2    90.0
    3    43.0
    4    87.0
    dtype: float64
    
    print (s.mean())
    25.8
    
    print (s.std())
    35.15299892375234
    

    另一种方案:

    from  itertools import chain
    
    s = pd.Series(list(chain.from_iterable([x['A'] for x in data]))).astype(float)
    print (s)
    0     2.0
    1     3.0
    2     4.0
    3     5.0
    4     6.0
    5     7.0
    6    11.0
    7    90.0
    8    43.0
    9    87.0
    dtype: float64
    

相关问题