首页 > 解决方案 > 读取文件时 Pandas 均值函数中显示意外值

问题描述

我正在处理 csv 数据。当我使用 pandas 读取 csv 文件并找到平均值时,它带有一个额外的数字开始。

正确答案:87.98 当我打印时:97 87.98

97 是数据的第一个条目(在 A1 处)。所有数字都在从 A1 到 A100 的表格中,没有标题和数字列。

为什么会这样?如何删除 97 部分?

file = pd.read_csv("malnutrition.csv")

meanD = file.mean()
print("\nPeople with malnutrition's IQ average: " + str(meanD))

还有,我怎样才能显示数据?喜欢在 R 中查看

谢谢

标签: pythonpandas

解决方案


DataFrame.mean()返回 a Series,其中 Index 是原始 DataFrame 的列标签,值是这些列的平均值。即使file是 1 列 DataFrame,您仍然会返回 Series,因为 1 列 DataFrame不是Series。

import pandas as pd
import numpy as np
np.random.seed(42)

df = pd.DataFrame(np.random.randint(1, 10, 100))
print(df.mean())
 0    5.32
#|    |
#|    Mean of column `0`
#|
#Col label

而是使用Series.mean()which 返回一个标量。

print(df[0].mean())
 5.32

但是您的数据还有其他一些问题。您正在读取第一个值作为标题,这是您不想要的。此外,当您只有一列时,不需要 DataFrame。所以你要

s = pd.read_csv('malnutrition.csv', header=None, squeeze=True)  # Should be a Series
print(s.mean())

推荐阅读