如何使用 Pandas Chaining 过滤行?
在本文中,我们将学习如何使用 Pandas 链来过滤行。首先,我们研究了一些以前的术语,如下所示:
- Pandas DataFrame :它是一种二维数据结构,即数据在行和列中以表格形式对齐。 Pandas DataFrame 具有三个主要组件,即数据、行和列。
- Pandas Chaining :方法链,其中方法在一个对象上依次调用,一个接一个。它一直是 Pandas 的一种编程风格,在过去的几个版本中,引入了许多允许更多链接的方法。
这里我们使用 Pandas 中的链接概念来过滤数据帧并获得与输出相同的行。这可以在示例的帮助下轻松解释。这里我们使用一个数据框,其中包含一些人的数据,如下所示:
Python
# import package
import pandas as pd
# define data
data = pd.DataFrame(
{'ID': {0: 105, 1: 102, 2: 101, 3: 106, 4: 103, 5: 104, 6: 107},
'Name': {0: 'Ram Kumar', 1: 'Jack Wills', 2: 'Deepanshu Rustagi',
3: 'Thomas James', 4: 'Jenny Advekar', 5: 'Yash Raj',
6: 'Raman Dutt Mishra'},
'Age': {0: 40, 1: 23, 2: 20, 3: 34, 4: 18, 5: 56, 6: 35},
'Country': {0: 'India', 1: 'Uk', 2: 'India', 3: 'Australia',
4: 'Uk', 5: 'India', 6: 'India'}
}
)
# view data
data
Python3
# select the rows with specific value in
# a particular column
print(data[data.Country.eq('India')])
Python3
# select the rows with specific grouped
# values in a particular column
print(data[data.Age<30])
Python3
# select the rows with specific string
# or character value in a particular column
print(data[data.Name.str.contains('am')])
Python3
# define the set of values
lst=['Uk','Australia']
# select the rows from specific set
# of values in a particular column
print(data[data.Country.isin(lst)])
输出:
按特定值过滤
在这里,我们选择特定列中具有特定值的行。选择数据框中的 Country 列,其值为 'India' 以过滤行。
蟒蛇3
# select the rows with specific value in
# a particular column
print(data[data.Country.eq('India')])
输出:
按特定分组值过滤
在这里,我们选择特定列中具有特定分组值的行。选择数据框中的年龄列,其值小于 30 以过滤行。
蟒蛇3
# select the rows with specific grouped
# values in a particular column
print(data[data.Age<30])
输出:
按特定字符或字符串值过滤
在这里,我们选择特定列中具有特定字符或字符串值的行。选择数据框中的名称列,其值包含“am”以过滤行。
蟒蛇3
# select the rows with specific string
# or character value in a particular column
print(data[data.Name.str.contains('am')])
输出:
按特定值集中的值过滤
在这里,我们从特定列中的特定值集中选择行。选择数据框中的 Country 列并与给定的值集匹配以过滤行。
蟒蛇3
# define the set of values
lst=['Uk','Australia']
# select the rows from specific set
# of values in a particular column
print(data[data.Country.isin(lst)])
输出: