dataframe 分组取平均值
时间: 2023-07-06 14:24:45 浏览: 152
可以使用 Pandas 中的 groupby 函数来对 DataFrame 进行分组,并使用 mean 函数计算每个组的平均值。例如:
```python
import pandas as pd
# 创建 DataFrame
df = pd.DataFrame({
'group': ['A', 'A', 'B', 'B', 'B'],
'value': [1, 2, 3, 4, 5]
})
# 按照 group 列分组,并计算每个组的平均值
result = df.groupby('group').mean()
print(result)
```
输出结果为:
```
value
group
A 1.5
B 4.0
```
这里将 DataFrame 按照 `group` 列进行分组,然后计算每个组的平均值,并将结果存储在 `result` 变量中。
相关问题
dataframe按照相同列求和取平均值
您可以使用 pandas 库来操作 dataframe,并使用 groupby() 方法按照相同列求和,然后使用 mean() 方法取平均值。例如,假设您的 dataframe 名称为 df,要按照列名为 'column_name' 的列求和并取平均值,代码如下:
```
df.groupby('column_name').sum().mean()
```
其中,sum() 方法对相同列进行求和,groupby() 方法按照相同列分组,mean() 方法对每个分组求平均值。
python对字段分组取众数,没有众数则取平均值
在Python中,如果你有一个包含数值数据的Pandas DataFrame,并想按照某列对另一列的值进行分组,然后计算每个组的众数(最常见的值),如果没有众数则取平均值,可以使用`groupby()`函数配合`mode()`函数来找到众数,如果没有找到,则可以用`mean()`函数求平均。这里是一个简单的例子:
```python
import pandas as pd
# 假设df是一个DataFrame,有两列data和category
df = pd.DataFrame({
'category': ['A', 'B', 'A', 'B', 'A', 'A', 'B', 'C'],
'data': [1, 2, 3, 4, 5, 6, 7, 8]
})
# 按照category分组并计算data的众数,如果不存在就用mean填充缺失
df['mode_or_mean'] = df.groupby('category')['data'].apply(lambda x: x.mode().values[0] if len(x.mode()) > 0 else x.mean())
print(df)
```
在这个例子中,`mode()`会返回每组`data`的众数列表,如果没有众数(`len(x.mode()) == 0`),就会取`mean()`。结果中的'mode_or_mean'列将包含每个'category'下的处理后的数据。
阅读全文