处理Pandas或纽比的负无限数

2024-04-24 18:50:06 发布

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

我有一个包含大量负数的文件(-np.inf公司)我已经尝试了所有我能想到的方法来删除或用0替换它们。在

数据如下。在

        id     kind            value    time

    0   1   tmx2005-01  -3.402823e+38   01
    1   1   tmx2005-02  -3.402823e+38   02
    2   1   tmx2005-03  -3.402823e+38   03
    3   1   tmx2005-04  -3.402823e+38   04
    4   1   tmx2005-05  -3.402823e+38   05 

如你所见,无限数在“值”列下,我尝试的一些解决方案是:

^{pr2}$

有没有想过我可能做错了什么,或者为什么不起作用?在


Tags: 文件数据方法idtimevaluenp公司
2条回答

value列中的值不是np.inf或{}。既然你想删除那些非常大的值,你可以试试这个。这里可以使用df.value[0]作为需要替换的值。第一次替换为0:

df.replace(df.value[0], 0)

输出如下:

^{pr2}$

如果要将其替换为np.nan值,则:

df.replace(df.value[0], np.nan)

使用value列作为子集删除空值:

df.dropna(subset=["value"], how="all")

正如其他人所指出的,“值”列中的值不是负无穷大的。在

无论如何,把它们当作无穷大的数字来处理是没有意义的,因为它们与Python中float的下限(大约为2e+308)相差很多个数量级。在

作为解决方案,我会选择一个值,在这个值下,你会认为某个东西是负无限的。这是一种Python式的方法:

limit = -3.402823*10**38
df2['value'] = np.array([0 if value <= limit else value for value in df2['value'])

相关问题 更多 >