일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 역행렬
- 밑바닥부터 시작하는 딥러닝
- NLP
- Python
- word embedding
- machine translation
- 판다스
- Transformer
- 신경망 학습
- 벡터간 유사도
- DataFrame
- 연립일차방정식
- sigmoid
- PPMI
- 자연어처리
- 정칙행렬
- 딥러닝
- 데이터프레임
- RNN
- word2vec
- 밑바닥부터 시작하는 딥러닝2 2장
- 프로그래머를 위한 선형대수
- pandas
- NMT
- Linear Algebra
- one-hot vector
- ReLU
- SVD
- 동시발생 행렬
- 선형대수학
- Today
- Total
생각하는감자
Dataframe (3) 본문
행, 열 선택하기/필터 하기
import pandas as pd
book_list = [
['name', ['The Call of Character', 'The Giver', 'Selfish Gene']],
['number', [2302, 1905, 2110]],
['location', ['A14-6', 'D03-8', 'J06-11']]
]
df = pd.DataFrame.from_items(book_list)
위와 같은 데이터프레임을 만들었다고 가정하고,
2번째와 3번째 정보만 보고 싶으면 간단하게 df[1:3]라는 명령어를 사용하면 된다.
*파이썬에선 배열의 정보를 불러올 때 첫 번째 값(예시에선 1)은 포함을 하고, :(콜론) 뒤에 오는 값(예시에선 3)은 포함하지 않는다.
여기서 주의할 점은 해당명령어는 데이터프레임 내의 정보를 확인하는 용도일 뿐이지 해당 데이터프레임이 완전히 바뀐 것이 아님을 알아야 한다.
만약 데이터프레임 자체를 바꾸고 싶다면,
df = df[1:3]
위와 같은 명령어를 통해 데이터프레임에 적용시켜주어야 한다.
비슷한 역할을 하는 다른 명령어는 loc이다.
df.loc[[0,2]]
해당 명령어는 0번째행과 2번째 행의 정보를 불러와준다. 위와 마찬가지로 데이터프레임에 적용되는 사항이 아니라 그저 정보를 보기 위함임을 주의해야 한다. 데이터프레임자체를 바꾸고 싶다면 df = df.loc[[0,2]] 라고 해주면 된다.
"column condition에 따라 row를 선택한다"
column의 정보에 제한을 걸어 정보를 확인할 수 있다는 것이다. 예를 들어 위의 리스트에서 number가 2300 이하인 것만 뽑아내고 싶다고 한다면,
df[df.number < 2300]
df.query('number<2300')
위의 두 가지 명령어를 통해 확인할 수 있다.
만약, 두 가지 condition을 정의하고 싶다면, 아래와 같이 작성하면 된다.
df[ (df.number<2300) & (df.title == 'Selfish Gene') ]
"column을 필터링하기"
- index 사용
df.iloc[:,0:2]
iloc 내부에 들어가는 값 중 콤마 앞부분은 row(행)이다.
콜론(:)은 데이터프레임 내부의 모든 row 값을 불러오는 것을 의미한다. 콤마 뒷부분은 column(열)이다.
위의 명령어처럼 작성했을 경우 0번부터 1번 row를 가지고 싶다는 것을 의미한다.
- column 이름 사용
만약 만들어둔 데이터프레임에서 'location'정보가 필요 없는 새로운 데이터프레임을 만든다고 하면 아래와 같다.
df_filtered = df[['title','number']]
filter라는 함수를 사용할 수도 있는데,
df.filter(items=['title','number'])
라고 하면 title과 number만 있는 것을 확인할 수 있다.
또한, 다른 방식을 생각해 보면, 만약 column 이름에 'e'가 들어간 것만 추출하고 싶다고 해보자.
df.filter(like='e', axis=1)
column은 언제나 축이 1이기 때문에 위와 같이 작성해 주면 title과 number에 해당하는 정보들만 추출될 것이다.
'Pandas' 카테고리의 다른 글
Dataframe (5) (0) | 2023.03.18 |
---|---|
Dataframe (4) (0) | 2023.03.17 |
Dataframe(2) (0) | 2023.03.11 |
Dataframe(1) (2) | 2023.03.10 |
Pandas, Dataframe, Series (1) | 2023.02.13 |