从一个给定的Pandas数据框架中移除无限的值

从一个给定的Pandas数据框架中移除无限的值

让我们来讨论一下如何从Pandas数据框架中移除无限的值。首先让我们做一个数据框架。

示例:

# Import Required Libraries
import pandas as pd
import numpy as np
  
# Create a dictionary for the dataframe
dict = {'Name': ['Sumit Tyagi', 'Sukritin', 'Akriti Goel',
                 'Sanskriti', 'Abhishek Jain'],
        'Age': [22, 20, np.inf, -np.inf, 22], 
        'Marks': [90, 84, 33, 87, 82]}
  
# Converting Dictionary to Pandas Dataframe
df = pd.DataFrame(dict)
  
# Print Dataframe
df

输出:

从一个给定的Pandas数据框架中移除无限的值

方法1:用Nan替换无限,然后用Nan丢弃行。

我们将首先用NaN值替换无限值,然后用dropna()方法删除有无限值的行。df.replace()方法需要两个位置参数。第一个是你要替换的值的列表,第二个是你想用哪个值来替换这些值。

# Replacing infinite with nan
df.replace([np.inf, -np.inf], np.nan, inplace=True)
  
# Dropping all the rows with nan values
df.dropna(inplace=True)
  
# Printing df
df

输出:

从一个给定的Pandas数据框架中移除无限的值

方法2:改变Pandas的选项,将无限期视为南。

Pandas提供了将无限值作为Nan的选项。它使得整个pandas模块将无限的值视为Nan。我们可以通过使用pd.set_option()来做到这一点。它在整个Jupyter笔记本中全局设置该选项。
语法:

pd.set_option('mode.use_inf_as_na', True)

它将选项设置为在整个会话中使用无限作为南值,或者直到选项没有被设置为假值。

# Changing option to use infinite as nan
pd.set_option('mode.use_inf_as_na', True)
  
# Dropping all the rows with nan values
df.dropna(inplace=True)
  
# Printing df
df

输出:

从一个给定的Pandas数据框架中移除无限的值

方法3:将无限期视为Nan,但使用option_context

我们可以使用pd.option_context(),而不是使用pd.set_options()来全局设置选项,它只在特定范围内改变选项。

# Changing option to use infinite as nan
with pd.option_context('mode.use_inf_as_na', True):
    
    # Dropping the rows with nan 
    # (or inf) values
    df.dropna(inplace=True)
  
# Printing df
df

输出:

从一个给定的Pandas数据框架中移除无限的值

方法4:使用过滤器

我们将首先创建一个过滤器,返回一个布尔数据帧,并使用这个过滤器来掩盖无限的值。

# Creating filter
df_filter = df.isin([np.nan, np.inf, -np.inf])
  
# Masking df with the filter
df = df[~df_filter]
  
# Dropping rows with nan values
df.dropna(inplace=True)
  
# Printing df
df

输出:

从一个给定的Pandas数据框架中移除无限的值

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程