python分组计算平均值
时间: 2023-06-29 18:17:31 浏览: 82
假设你有一个包含数据的列表,你可以使用Python的内置函数`groupby()`和`mean()`来分组计算平均值。以下是一个示例代码:
```python
from itertools import groupby
data = [("A", 10), ("B", 15), ("A", 8), ("C", 12), ("B", 20), ("A", 7)]
data.sort(key=lambda x: x[0]) # 先按照第一个元素排序
result = {}
for key, group in groupby(data, lambda x: x[0]):
values = [x[1] for x in group] # 获取该组的数值
result[key] = sum(values) / len(values) # 计算平均值
print(result)
```
该代码将输出一个字典,其中键为组的名称,值为该组的平均值。例如,如果你的数据是上面的示例数据,则输出将是`{"A": 8.33, "B": 17.5, "C": 12.0}`。
相关问题
pandas怎么分组计算平均值
你可以使用`groupby()`方法来对数据进行分组,并使用`mean()`方法来计算每个组的平均值。下面是一个简单的示例:
```python
import pandas as pd
# 创建一个示例数据框
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Emma', 'Frank'],
'Gender': ['F', 'M', 'M', 'M', 'F', 'M'],
'Age': [25, 32, 18, 47, 22, 36],
'Salary': [50000, 80000, 35000, 100000, 42000, 75000]}
df = pd.DataFrame(data)
# 按性别分组并计算平均工资
avg_salary_by_gender = df.groupby('Gender')['Salary'].mean()
print(avg_salary_by_gender)
```
上述代码将按`Gender`列进行分组,并计算每个组的平均`Salary`值。输出结果如下:
```
Gender
F 46000.0
M 65000.0
Name: Salary, dtype: float64
```
可以看到,`avg_salary_by_gender`是一个Pandas系列对象,包含了每个性别的平均工资。
python按类分组求平均值
假设你有一个包含多个类别的数据集,每个类别下都有多个数值,你想要按类别分组,计算每个类别下数值的平均值。可以使用Python中的pandas库来实现。具体步骤如下:
1. 导入pandas库
```
import pandas as pd
```
2. 创建数据集
假设你的数据集如下:
```
data = pd.DataFrame({
'class': ['A', 'A', 'B', 'B', 'B', 'C', 'C'],
'value': [1, 2, 3, 4, 5, 6, 7]
})
```
其中,`class`列为类别,`value`列为数值。
3. 按类别分组求平均值
使用`groupby`函数按类别分组,然后使用`mean`函数求平均值:
```
result = data.groupby('class').mean()
```
最终结果如下:
```
value
class
A 1.5
B 4.0
C 6.5
```
其中,`class`列为索引,`value`列为平均值。
阅读全文
相关推荐













