DataFrame.filter
DataFrame.filter(items=None, like=None, regex=None, axis=None)
根据指定的索引标签取得DataFrame的行或列的子集。
过滤器应用于索引标签,但不会应用于DataFrame中的数据。
Parameters
items | 要保留的标签 |
---|---|
like | 以like方式保留标签 |
regex | 以regex方式保留标签 |
axis | 0 or index:筛选行,1 or columns:筛选列 |
Example
import pandas as pd
df = pd.DataFrame({'site':['google', 'baidu', 'wiki'],
'age':[18, 39, 22],
'price': [1.0, 2.0, 3.0],
'color': ['red', 'black', None]},index=['first','second','third'])
df.filter(items=['site', 'age'])
-----------------------------------------------
site age
first google 18
second baidu 39
third wiki 22
Example
import pandas as pd
df = pd.DataFrame({'site':['google', 'baidu', 'wiki'],
'age':[18, 39, 22],
'price': [1.0, 2.0, 3.0],
'color': ['red', 'black', None]},index=['first','second','third'])
df.filter(items=['first', 'second'], axis=0)
-------------------------------------------------------
site age price color
first google 18 1.0 red
second baidu 39 2.0 black
Example
import pandas as pd
df = pd.DataFrame({'site':['google', 'baidu', 'wiki'],
'age':[18, 39, 22],
'price': [1.0, 2.0, 3.0],
'color': ['red', 'black', None]},index=['first','second','third'])
df.filter(regex='e$', axis=1)
--------------------------------------------------------
site age price
first google 18 1.0
second baidu 39 2.0
third wiki 22 3.0
Example
import pandas as pd
df = pd.DataFrame({'site':['google', 'baidu', 'wiki'],
'age':[18, 39, 22],
'price': [1.0, 2.0, 3.0],
'color': ['red', 'black', None]},index=['first','second','third'])
df.filter(like='on', axis=0)
-------------------------------------------
site age price color
second baidu 39 2.0 black
DataFrameGroupBy.filter
DataFrameGroupBy.filter(func, dropna=True, *args, kwargs)**
返回DataFrame的副本,不包括过滤后的元素。
如果组中的元素不满足func指定的布尔标准,则过滤它们。
Parameters
func | 函数应用于每个子帧,应该返回True或False |
---|---|
dropna | False:用nan填充 |
import pandas as pd
df = pd.DataFrame({'site':['google', 'baidu', 'wiki'],
'age':[18, 39, 22],
'price': [1.0, 2.0, 3.0],
'color': ['red', 'black', None]},index=['first','second','third'])
df.groupby('color').filter(lambda x: x['age'].mean() > 30)
---------------------------------------------------------
site age price color
second baidu 39 2.0 black