如何删除数据帧中的“无限”值?

2024-06-23 18:33:09 发布

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

我尝试使用以下代码删除数据集中的所有无穷大和NaN值:

#loading data    
data_path = os.path.join('/home/~/Desktop/~/~/rf_recordings', 'WiFi_1.iqt')

nframes = 644571
iqdata = iqtools.GRData(data_path, fs = 5.12e+007, center=2.4415e+009)
iqdata.read_complete_file()
x_data = iqdata.get_spectrogram(nframes, lframes=1)

#trying to replace each inf and -inf into nan, then replace nan with mean value of x_data
df = pd.DataFrame(data = x_data)  
df.replace([np.inf, -np.inf], np.nan)           
df = np.nan_to_num(df, nan = np.mean(x_data[1]))
print(df)

但是我得到的结果显示,原来的NAN被更改为np.mean(x_data[1]),但是将inf更改为nan不起作用,如下所示:

以前

tensor([[[[0.0000e+00, 0.0000e+00, 0.0000e+00]]],


        [[[0.0000e+00, 0.0000e+00, 0.0000e+00]]],


        [[[0.0000e+00, 0.0000e+00, 0.0000e+00]]],


        ...,


        [[[       nan,        nan,        inf]]],


        [[[2.5295e-38,        nan,        nan]]],


        [[[       nan,        nan,        nan]]]])

之后

tensor([[[[0.0000e+00, 0.0000e+00, 0.0000e+00]]],


            [[[0.0000e+00, 0.0000e+00, 0.0000e+00]]],


            [[[0.0000e+00, 0.0000e+00, 0.0000e+00]]],


            ...,


            [[[5.2155e-03, 5.2155e-03,        inf]]],


            [[[2.5295e-38, 5.2155e-03, 5.2155e-03]]],


            [[[5.2155e-03, 5.2155e-03, 5.2155e-03]]]])

请问我有什么办法可以修改/改进吗


Tags: to数据path代码dfdatanpnan
1条回答
网友
1楼 · 发布于 2024-06-23 18:33:09

DataFrame.replace()默认情况下不工作,它返回一个新的数据帧

替代品

df.replace([np.inf, -np.inf], np.nan)

与以下任何一项:

df = df.replace([np.inf, -np.inf], np.nan)

df.replace([np.inf, -np.inf], np.nan, inplace=True)

有时建议使用前者,因为后者将修改对象的任何其他视图

相关问题 更多 >

    热门问题