pandas.DataFrame.query(self, expr, inplace = False, **kwargs)
1. 作用:
- 使用布爾表達式查詢DataFrame的列,也就是按照DataFrame中某列的規則進行過濾操作
2. 參數:
- expr:
- 要評估的查詢字符串;
- 可以在環境中引用變量,在變量前面加上@字符(@a+b);
- 也可以通過在反引號中將空格或運算符括起來來引用它們
- inplace=False:查詢是應該修改數據還是返回修改后的副本
- kwargs:dict關鍵字參數
3. 返回值類型:
- DataFrame,由提供的查詢表達式產生的DataFrame
4. 舉例:
生成數據:
import pandas as pd import numpy as np df = pd.DataFrame({ 'A': range(1,6), 'B': range(10, 0, -2), 'C C': 2 }) print(df)
output:
A B C C
0 1 10 2
1 2 8 2
2 3 6 2
3 4 4 2
4 5 2 2
4.1 查詢B列中數值為2的行記錄
print(df.query('B == 2'))
output:
A B C C
4 5 2 2
4.2 查詢A列數值小於B列的行記錄
print(df.query('A < B')) # 等價於 print(df[df.A < df.B])
output:
A B C C
0 1 10 2
1 2 8 2
2 3 6 2
4.3 查詢B列數值和C C列相等的行記錄
注:對於名稱中帶有空格的列名,python2可以用反引號引用,但是python3已經取消了,所以可以用下面的方法
print(df[df.B == df['C C']])
output:
A B C C
4 5 2 2
參考鏈接:https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.query.html