python csv进行计算时如何避免无穷大
Posted
技术标签:
【中文标题】python csv进行计算时如何避免无穷大【英文标题】:How to avoid infinity when doing calculations python csv 【发布时间】:2021-11-19 15:16:20 【问题描述】:所以我正在编写一个代码,我从 csv 文件中获取值并将它们与一些数字相乘。数据中的一些值是无穷大的,所以当我计算该列的平均值时,它给了我无穷大的答案,这是有意义的。有没有办法可以避免计算其中有无穷大的单元格??
我试过用这个,但没有用。谁能告诉我这样做是否正确?
cop_average = df["COP"].replace('inf', np.nan).mean(skipna=True)
运行此程序后,我仍然在某些单元格中收到“inf”!
【问题讨论】:
似乎您想先进行替换,然后检查 df 以查看发生了什么。他们换了吗?还是您的替换失败了? 我认为我的替换功能正在工作,因为当我这样做时cop_average = df["COP"].replace(0, np.nan).mean(skipna=True)
它工作它只是由于某种原因在无穷大上不起作用,而且我什至没有得到任何错误
无论如何都要检查一下。你可能会学到一些新东西:)
只过滤它类似于 ***.com/a/55228059/14237276 之前平均 df 会有你的 df["COP"]
【参考方案1】:
您应该替换无穷大的浮点表示,而不是替换字符串'inf'
。
import pandas as pd
import numpy as np
d = "COP": [1, 2, np.Inf], "col2": [3, 4, 5]
df = pd.DataFrame(data=d)
df["COP"].replace(np.Inf, np.nan).mean(skipna=True)
【讨论】:
你试过我的代码了吗?它适用于 python=3.8.10、pandas=1.3.3、numpy=1.21.2。如果没有,我需要有关您的数据的更多信息。以上是关于python csv进行计算时如何避免无穷大的主要内容,如果未能解决你的问题,请参考以下文章
PHP Laravel:如何在将 xl/csv 导入 mysql 时避免重复数据?
如何在 python 中遍历大型 CSV 文件时轻松使用内存?