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

Python 如何删除;“无限”;数据帧中的值?,python,pandas,numpy,nan,infinity,Python,Pandas,Numpy,Nan,Infinity,我尝试使用以下代码删除数据集中的所有无穷大和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 = iq

我尝试使用以下代码删除数据集中的所有无穷大和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。平均值(x_数据[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]]]])
之后

有什么方法可以修改/改进吗?

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

替代品

df.replace([np.inf, -np.inf], np.nan)
与以下任何一项:

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


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

谢谢您的回答,我尝试了您的两个建议,第一个建议不会更改数据集,当我使用第二个建议时,dataframe对象将成为非类型对象,无法再更改为numpy数组。有什么想法吗?
df = df.replace([np.inf, -np.inf], np.nan)
df.replace([np.inf, -np.inf], np.nan, inplace=True)