이 글에서는 Python Pandas 라이브러리를 사용하는 방법에 대해 설명하고 query()를 사용한 우아한 쿼리 방법을 소개하겠습니다. 모두에게 도움이 되기를 바랍니다.
Pandas가 조건에 따라 특정 데이터를 얻기 위해서는 누구나 쉽게 해당 코드를 작성할 수 있다고 생각하지만 쿼리를 사용해 본 적이 없다면 그 단순함에 감동받을 것이라고 믿습니다!
먼저 DataFrame을 생성하세요.
import pandas as pd df = pd.DataFrame( {'A': ['e', 'd', 'c', 'b', 'a'], 'B': ['f', 'b', 'c', 'd', 'e'], 'C': range(0, 10, 2), 'D': range(10, 0, -2), 'E.E': range(10, 5, -1)})
이제 A열의 문자가 B열에 나타나는 모든 행을 선택합니다. 먼저 두 가지 일반적인 글쓰기 방법을 살펴보겠습니다.
>>> df[df['A'].isin(df['B'])] A B C D E.E 0 e f 0 10 10 1 d b 2 8 9 2 c c 4 6 8 3 b d 6 4 7 >>> df.loc[df['A'].isin(df['B'])] A B C D E.E 0 e f 0 10 10 1 d b 2 8 9 2 c c 4 6 8 3 b d 6 4 7
아래 query()
를 사용하여 구현하세요. query()
来实现。
>>> df.query("A in B") A B C D E.E 0 e f 0 10 10 1 d b 2 8 9 2 c c 4 6 8 3 b d 6 4 7
可以看到使用 query
后的代码简洁易懂,并且它对于内存的消耗也更小。
多条件查询
选取 A列字母出现在B列,并且C列小于D列 的所有行。
>>> df.query('A in B and C < D') A B C D E.E 0 e f 0 10 10 1 d b 2 8 9 2 c c 4 6 8
这里 and
也可以用 &
表示。
引用变量
表达式中也可以使用外部定义的变量,在变量名前用@标明。
>>> number = 5 >>> df.query('A in B & C > @number') A B C D E.E 3 b d 6 4 7
索引选取
选取 A列字母出现在B列,并且索引大于2 的所有行。
>>> df.query('A in B and index > 2') A B C D E.E 3 b d 6 4 7
多索引选取
创建一个两层索引的 DataFrame。
>>> import numpy as np >>> colors = ['yellow']*3 + ['red']*2 >>> rank = [str(i) for i in range(5)] >>> index = pd.MultiIndex.from_arrays([colors, rank], names=['color', 'rank']) >>> df = pd.DataFrame(np.arange(10).reshape(5, 2),columns=['A', 'B'] , index=index) >>> df = pd.DataFrame(np.arange(10).reshape(5, 2),columns=['A', 'B'] , index=index) >>> df A B color rank yellow 0 0 1 1 2 3 2 4 5 red 3 6 7 4 8 9
1、当有多层索引有名称时,通过索引名称直接选取。
>>> df.query("color == 'red'") A B color rank red 3 6 7 4 8 9
2、当有多层索引无名时,通过索引级别来选取。
>>> df.index.names = [None, None] >>> df.query("ilevel_0 == 'red'") A B red 3 6 7 4 8 9 >>> df.query("ilevel_1 == '4'") A B red 4 8 9
特殊字符
对于列名中间有空格或运算符等其他特殊符号,需要使用反引号 ``
>>> df.query('A == B | (C + 2 > `E.E`)') A B C D E.E 2 c c 4 6 8 3 b d 6 4 7 4 a e 8 2 6
query
를 사용한 후의 코드가 간결하고 이해하기 쉬우며, 메모리 소모도 적은 것을 확인할 수 있습니다.
선택 🎜A열의 문자가 B열에 나타나고 C열이 D열보다 작은 모든 행 선택 🎜. 🎜rrreee🎜여기서 and
는 &
로도 표현할 수 있습니다. 🎜🎜🎜참조 변수🎜🎜🎜외부 정의 변수는 변수 이름 앞에 @를 표시하여 표현식에서도 사용할 수 있습니다. 🎜rrreee🎜🎜색인 선택🎜🎜🎜Select 🎜A열의 문자가 B열에 나타나고 색인이 2🎜보다 큰 모든 행을 선택하세요. 🎜rrreee🎜🎜다중 인덱스 선택🎜🎜🎜두 가지 수준의 인덱스가 있는 DataFrame을 만듭니다. 🎜rrreee🎜1. 이름이 있는 색인이 여러 개 있을 경우 색인 이름으로 직접 선택하세요. 🎜rrreee🎜2. 이름 없는 인덱스가 여러 개 있을 경우 인덱스 수준별로 선택하세요. 🎜rrreee🎜🎜특수 문자🎜🎜🎜열 이름에 공백이나 연산자와 같은 기타 특수 기호가 중간에 있는 경우 백틱을 사용해야 합니다. ``. 🎜rrreee🎜일반적으로 query()의 사용법은 비교적 간단하여 빠르게 시작할 수 있고, 코드의 가독성도 많이 향상되었습니다. 🎜🎜【관련 추천: 🎜Python3 비디오 튜토리얼🎜】🎜
위 내용은 한 기사에서 Python에서 query()를 사용하여 우아한 쿼리를 수행하는 방법을 알아보세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!