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进行计算时如何避免无穷大的主要内容,如果未能解决你的问题,请参考以下文章

python 如何将数据写入某个csv文件的特定位置?

PHP Laravel:如何在将 xl/csv 导入 mysql 时避免重复数据?

python如何根据csv中一列的内容对另一列进行写入

如何在 python 中遍历大型 CSV 文件时轻松使用内存?

pandas读取csv文件时避免科学计数法(xxxe+09)

Python,使用pandas保存数据为csv格式的文件