我试图找到数据集中一列中所有值的平均值。我做了 df["column"].mean() 但它给了我一个大得离谱的数字,考虑到我的值有多小,这是没有意义的。然而, min() 和 max() 函数工作正常。澄清一下,第一个单元格中输出的左侧是索引,右侧是值。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()
1 回答
当年话下
TA贡献1890条经验 获得超9个赞
可能大熊猫应该拒绝取字符串列的平均值。但它没有,所以你得到的是:
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'。
使您的列数字化,无论是整数还是浮点数,无论您喜欢哪个,并记住这.astype不能就地工作,因此您需要
delay["If Delayed, for how long?"] = delay["If Delayed, for how long?"].astype(int)
如果您希望该列实际更改。
添加回答
举报
0/150
提交
取消