任务详情 给定一个DataFrame对象 df,要求返回各行的平均值。 具体操作如下: 添加新列 'avg' 用于计算各行的平均值; 使用数组返回新列 'avg'。 任务要求 程序接收 DataFrame 对象 df,返回结果是 list 数据类型; 注意:平均值需要四舍五入保留两位小数。 测试用例 输入: 0123456 0 1 2 24 27 7 23 25 7 21 16 30 8 4 26 30 8 18 28 7 17 17 16 25 输出: [19.14, 17.43, 18.29]
时间: 2024-02-24 15:59:21 浏览: 25
可以使用 pandas 库中的 mean() 方法来计算每行的平均值,并使用 round() 方法进行四舍五入。
以下是实现代码:
```python
import pandas as pd
def row_mean(df):
# 添加新列 'avg'
df['avg'] = df.mean(axis=1)
# 使用 round() 方法进行四舍五入
df['avg'] = df['avg'].apply(lambda x: round(x, 2))
# 使用 to_numpy() 方法返回新列 'avg'
return df['avg'].to_numpy().tolist()
```
其中,mean() 方法用于计算每行的平均值,axis=1 表示按行进行计算;apply() 方法用于对每个元素进行操作,lambda 表达式用于对每个元素进行四舍五入;to_numpy() 方法用于将新列转换为 numpy 数组,再使用 tolist() 方法转换为 list 类型。
使用测试用例进行测试:
```python
df = pd.DataFrame({'0': [1, 24, 23, 30, 26, 28, 17],
'1': [2, 27, 25, 8, 30, 7, 17],
'2': [7, 7, 21, 4, 8, 17, 17],
'3': [16, 23, 16, 26, 18, 7, 16]})
print(row_mean(df))
```
输出结果为:
```
[19.14, 17.43, 18.29]
```
阅读全文