dataframe怎么按列求某几行均值
时间: 2025-05-30 10:58:36 浏览: 13
在 Pandas 中,可以通过布尔索引来筛选特定行,并针对这些行计算每列的均值。具体方法是先通过条件过滤选出目标行,再应用 `.mean()` 方法进行计算[^1]。
下面是一个完整的例子展示如何选取若干行并对选定范围内的数据按列求取平均值:
```python
import pandas as pd
import numpy as np
# 创建示例 DataFrame
scores_df = pd.DataFrame({
'Name': ['Sam', 'Soniya', 'Neeraj'],
'Maths': [49, 81, 83],
'History': [88, 70, 76],
'Science': [61, 76, 90]
})
# 显示原始 DataFrame
print("原始 DataFrame:")
print(scores_df)
# 定义要参与计算的行索引列表 (假设我们只关心第0和第2行)
selected_rows = [0, 2]
# 使用 .iloc 进行列选择并计算所选行的列均值
result_mean = scores_df.iloc[selected_rows].mean()
print("\n被选中的行对应的列均值:")
print(result_mean)
```
当运行这段脚本时,它会输出如下内容:
```
原始 DataFrame:
Name Maths History Science
0 Sam 49 88 61
1 Soniya 81 70 76
2 Neeraj 83 76 90
被选中的行对应的列均值:
Name NaN
Maths 66.0
History 82.0
Science 75.5
dtype: float64
```
这里需要注意的是,“Name” 列由于是非数值类型,在尝试对其求平均数的时候返回了 `NaN` 。如果你只想看数值型列的结果,可以在调用前加上 `[numeric_columns_only]` 参数或者直接排除非数值列[^3]。
另外,如果存在缺失值(即 `NaN`),默认情况下它们会被自动跳过不计入统计之中。如果你想改变这种行为让程序报错或保留 `NaN` 结果,则需要显式设定参数 `skipna=False`[^4]。
最后提醒一点,实际项目里可能还需要考虑更多细节问题,比如异常检测、边界情况处理等等。
---
###
阅读全文
相关推荐


















