📜  按列值过滤 Pandas DataFrame 的方法

📅  最后修改于: 2022-05-13 01:54:47.230000             🧑  作者: Mango

按列值过滤 Pandas DataFrame 的方法

在这篇文章中,我们将看到按列值过滤 Pandas Dataframe 的不同方法。首先,让我们创建一个数据框:

Python3
# importing pandas 
import pandas as pd 
    
# declare a dictionary
record = { 
  
 'Name' : ['Ankit', 'Swapnil', 'Aishwarya', 
          'Priyanka', 'Shivangi', 'Shaurya' ],
    
 'Age' : [22, 20, 21, 19, 18, 22], 
    
 'Stream' : ['Math', 'Commerce', 'Science', 
            'Math', 'Math', 'Science'], 
    
 'Percentage' : [90, 90, 96, 75, 70, 80] } 
    
# create a dataframe 
dataframe = pd.DataFrame(record,
                         columns = ['Name', 'Age', 
                                    'Stream', 'Percentage']) 
# show the Dataframe
print("Given Dataframe :\n", dataframe)


Python3
# selecting rows based on condition 
rslt_df = dataframe[dataframe['Percentage'] > 70] 
    
print('\nResult dataframe :\n', rslt_df)


Python3
# selecting rows based on condition 
rslt_df = dataframe.loc[dataframe['Percentage'] > 70] 
    
print('\nResult dataframe :\n', 
      rslt_df)


Python3
options = ['Science', 'Commerce'] 
    
# selecting rows based on condition 
rslt_df = dataframe[dataframe['Stream'].isin(options)] 
    
print('\nResult dataframe :\n',
      rslt_df)


Python
options = ['Science', 'Commerce'] 
    
# selecting rows based on condition 
rslt_df = dataframe.loc[dataframe['Stream'].isin(options)] 
    
print('\nResult dataframe :\n', 
      rslt_df)


Python3
options = ['Commerce' ,'Science'] 
    
# selecting rows based on condition 
rslt_df = dataframe[(dataframe['Age'] == 22) & 
          dataframe['Stream'].isin(options)] 
    
print('\nResult dataframe :\n',
      rslt_df)


Python3
options = ['Commerce', 'Science'] 
   
# selecting rows based on condition 
rslt_df = dataframe.loc[(dataframe['Age'] == 22) & 
              dataframe['Stream'].isin(options)] 
    
print('\nResult dataframe :\n',
      rslt_df)


输出:

数据框

方法 1:使用 '>', '=', '=', '<=', '!=' 运算符选择基于特定列值的 Pandas Dataframe 行。

示例 1:使用[ ]从给定数据框中选择“百分比”大于 75 的所有行。

蟒蛇3

# selecting rows based on condition 
rslt_df = dataframe[dataframe['Percentage'] > 70] 
    
print('\nResult dataframe :\n', rslt_df)

输出:

输出数据帧

示例 2:从给定的 Dataframe 中选择“百分比”大于 70 的所有行,使用 位置[]

蟒蛇3

# selecting rows based on condition 
rslt_df = dataframe.loc[dataframe['Percentage'] > 70] 
    
print('\nResult dataframe :\n', 
      rslt_df)

输出:

输出数据帧-1

方法 2:使用数据框的 isin() 方法选择列值存在于列表中的那些 Pandas 数据框行。

示例 1:使用[ ]从给定数据框中选择选项列表中存在 'Stream' 的所有行。

蟒蛇3

options = ['Science', 'Commerce'] 
    
# selecting rows based on condition 
rslt_df = dataframe[dataframe['Stream'].isin(options)] 
    
print('\nResult dataframe :\n',
      rslt_df)

输出:

输出数据帧-2

示例 2:使用loc[ ]从给定数据框中选择选项列表中存在 'Stream' 的所有行。

Python

options = ['Science', 'Commerce'] 
    
# selecting rows based on condition 
rslt_df = dataframe.loc[dataframe['Stream'].isin(options)] 
    
print('\nResult dataframe :\n', 
      rslt_df)

输出:

输出数据帧-3

方法 3:使用 '&'运算符根据多列条件选择 Pandas Dataframe 的行。

示例 1:使用[ ]从给定的 Dataframe 中选择所有行,其中 'Age' 等于 22 并且 'Stream' 出现在选项列表中。

蟒蛇3

options = ['Commerce' ,'Science'] 
    
# selecting rows based on condition 
rslt_df = dataframe[(dataframe['Age'] == 22) & 
          dataframe['Stream'].isin(options)] 
    
print('\nResult dataframe :\n',
      rslt_df)

输出:

输出数据帧-4

示例 2:从给定的 Dataframe 中选择所有行,其中 'Age' 等于 22,并且使用loc[ ]选项列表中存在 'Stream'。

蟒蛇3

options = ['Commerce', 'Science'] 
   
# selecting rows based on condition 
rslt_df = dataframe.loc[(dataframe['Age'] == 22) & 
              dataframe['Stream'].isin(options)] 
    
print('\nResult dataframe :\n',
      rslt_df)

输出:

输出数据帧-5