Pandas 中的 filter()
方法用于根据指定的条件从 DataFrame 中过滤行和列。
示例
import pandas as pd
# create a sample DataFrame
data = {'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]}
df = pd.DataFrame(data)
# use filter() to select specific columns by name
selected_columns = df.filter(items=['A', 'C'])
# print the resulting DataFrame
print(selected_columns)
'''
Output
A C
0 1 7
1 2 8
2 3 9
'''
filter() 语法
Pandas 中 filter()
方法的语法是:
df.filter(items=None, like=None, regex=None)
filter() 参数
filter()
方法接受以下参数:
items
(可选)- 一个包含我们想要保留的列标签的列表like
(可选)- 一个字符串,表示要在列名中匹配的子字符串regex
(可选)- 一个正则表达式模式
filter() 返回值
filter()
方法根据指定的条件(例如列名、子字符串或正则表达式模式)从 DataFrame 中返回选定的列。
示例 1:选择包含特定子字符串的列
import pandas as pd
# create a dictionary
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 22],
'City': ['New York', 'Los Angeles', 'Chicago']
}
# create a DataFrame df from data
df = pd.DataFrame(data)
# use filter() to select specific columns ('Name' and 'Age') from df
selected_columns = df.filter(items=['Name', 'Age'])
# display the selected columns
print(selected_columns)
输出
Name Age 0 Alice 25 1 Bob 30 2 Charlie 22
在上面的示例中,我们首先创建了具有三列的 df DataFrame:Name
、Age
和 City
。
然后,我们使用带 items
参数的 filter()
方法来仅选择 Name
和 Age
列。
示例 2:使用 like 参数选择包含特定子字符串的列
import pandas as pd
# sample DataFrame
data = {'apple_count': [3, 2, 5],
'banana_count': [1, 4, 6],
'orange_count': [4, 3, 2]}
df = pd.DataFrame(data)
# select columns containing the substring "apple"
filtered_columns = df.filter(like='apple')
print(filtered_columns)
输出
apple_count 0 3 1 2 2 5
在此示例中,我们使用带 like
参数的 filter()
方法来选择 DataFrame 中列名包含子字符串 apple
的列。
结果存储在 filtered_columns DataFrame 中,由于 apple_count
列匹配子字符串 apple
,因此它仅包含 apple_count
列。
示例 3:使用正则表达式模式选择列
import pandas as pd
# create a sample DataFrame
data = {'A_column': [1, 2, 3],
'B_column': [4, 5, 6],
'C_Column': [7, 8, 9]}
df = pd.DataFrame(data)
# use filter() with a regular expression pattern to select columns
filtered_df = df.filter(regex='^A|C_')
print(filtered_df)
输出
A_column C_Column 0 1 7 1 2 8 2 3 9
在这里,我们创建了具有 A_column
、B_column
和 C_column
列的 df DataFrame。
我们使用了 filter()
函数,并将 regex
参数设置为 '^A|C_'
,这意味着我们想要选择以 'A'
开头的列或名称以 'C_'
开头的列。
结果是,filtered_df 仅包含 'A_column'
和 'C_column'
列。
注意:要了解有关正则表达式的更多信息,请访问 Python RegEx。