列的.mean()

2024-04-26 06:57:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图找到数据集中某列中所有值的平均值。我做了df[“column”].mean(),但它给了我一个可笑的大数字,考虑到我的值有多小,这是没有意义的。但是,min()和max()函数可以正常工作。你知道吗

Here is what I'm talking about.

澄清一下,第一个单元格中输出的左侧是索引,右侧是值。你知道吗

delay["If Delayed, for how long?"].astype(int)

print(delay["If Delayed, for how long?"].min())
print(delay["If Delayed, for how long?"].max())
print(delay["If Delayed, for how long?"].mean()

Tags: 数据dfforifcolumn数字minmean
1条回答
网友
1楼 · 发布于 2024-04-26 06:57:04

也许熊猫应该拒绝接受字符串列的平均值。但事实并非如此,所以你得到的是:

In [154]: s = pd.Series([15,18,16,14,20,16,15]).astype(str)

In [155]: s.sum()
Out[155]: '15181614201615'

In [156]: float(s.sum()) / len(s)
Out[156]: 2168802028802.1428

In [157]: s.mean()
Out[157]: 2168802028802.1428

s.min()s.max()将“起作用”,但它是词典中的最小值和最大值,而不是数字,所以'111'<;'20'。你知道吗

使您的列成为数值列,无论是int还是float,只要您愿意,请记住.astype不能正常工作,因此您需要

delay["If Delayed, for how long?"] = delay["If Delayed, for how long?"].astype(int)

如果你想让列真正改变。你知道吗

相关问题 更多 >