Python .mean()表示列
我试图找到数据集中某列中所有值的平均值。我做了df[“column”].mean(),但它给了我一个荒谬的大数字,考虑到我的值有多小,这是没有意义的。但是,min()和max()函数工作正常 为了澄清,第一个单元格中输出的左侧是索引,右侧是值Python .mean()表示列,python,pandas,jupyter-notebook,Python,Pandas,Jupyter Notebook,我试图找到数据集中某列中所有值的平均值。我做了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 ho
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()
熊猫可能应该拒绝采用字符串列的平均值。但事实并非如此,所以你得到的是:
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)
如果您希望该列实际发生更改。请包含使我们能够复制该问题的自包含代码。部分代码的图片对于重现问题是无用的。这似乎是一个bug。我重新开门。你能用代码代替图片吗?