akaSonny
[python/pandas] DataFrame csv 파일 읽기, 인덱스 찾기 본문
Study (Programming)/Python
[python/pandas] DataFrame csv 파일 읽기, 인덱스 찾기
Jihyeoning 2023. 4. 25. 15:07데이터를 처리하다보면 무조건 써야되는 pandas DataFrame ..
자주 쓰는 함수들 정리할 겸 오랜만에 파이썬 포스팅
1. csv 파일 열기 - pd.read_csv() 함수
import pandas as pd
data = pd.read_csv('data.csv', engine='python')
일단 내가 데이터 열 때는 이렇게 쓰는데, 도큐먼트를 보니 입력값이 엄~청나게 많다.
뭔가 쓸모있어 보이는 것을 정리해보면,
- dtype: column 별로 데이터 타입을 지정해 줄 수 있다. ex) dtype={‘a’: np.float64, ‘b’: np.int32, ‘c’: ‘Int64’}
- sep: 각 행을 어떤 문자(string 형태)로 구별할 것인가 지정 (default: ',')
- header: 헤더 지정 가능, default는 첫 행
그리고 read_csv() 함수로 텍스트 파일도 열 수 있다.
data = pd.read_csv('data.txt', sep='|', engine='python')
2. 특정값의 인덱스 찾기
먼저 데이터프레임을 만들자.
import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.randint(1,20,size=(20, 4)), columns=list('ABCD'))
위의 데이터 프레임을 출력해보면, 이런식으로 1~20 사이의 값이 랜덤하게 분포하게 된다.
A | B | C | D | |
0 | 13 | 16 | 1 | 4 |
1 | 4 | 8 | 10 | 19 |
2 | 5 | 7 | 13 | 2 |
3 | 7 | 8 | 15 | 18 |
... |
이 중 특정 조건의 행을 찾고 싶다면 (ex. B의 값이 19인 행을 찾고 싶다는 등), df.loc[Bool 조건] 을 사용하면 된다.
출력값: 해당 조건에 해당하는 행의 데이터프레임 형태
print(df.loc[df['B'] == 19])
A | B | C | D | |
6 | 1 | 19 | 4 | 18 |
9 | 12 | 19 | 3 | 1 |
만약 인덱스를 찾고 싶다면, df.indx[Bool 조건] 함수를 써주자.
print(df.index[df['B'] == 19)
# Int64Index([6, 9])
이 때 출력은 Int64Index 유형인데 이것을 리스트로 바꾸고 싶으면 tolist()를 쓴다.
print(df.index[df['B'] == 19].tolist())
# [6, 9]
조건이 여러개라면 | 기호를 사용한다. (loc 함수에서도 마찬가지)
print(df.index[(df['B'] == 19) | (df['C'] == 19)])
print(df.loc[(df['B'] == 19) | (df['C'] == 19)])
참고
https://www.delftstack.com/ko/howto/python-pandas/pandas-get-index-of-row/
'Study (Programming) > Python' 카테고리의 다른 글
[pandas] DataFrame 열&행 삭제 / 삽입 (0) | 2023.07.10 |
---|---|
[python/pandas] DataFrame groupby 이용하기 (0) | 2023.06.29 |
[파이썬/python] 반복문으로 변수 만들기 (globals) (1) | 2023.03.22 |
활성화 함수 (Activation Function) 정리 (0) | 2023.01.05 |
파이썬 문자열 포맷팅 python string format 정리 (0) | 2022.09.08 |