KEEP GOING
PANDAS 기초 실습 (iloc, to_csv, read_csv) 본문
반응형
import pandas as pd
customer = [
{'name': '한정민', 'age': 26, 'address': 'Ansan', 'account':85000000},
{'name': '박우혁', 'age': 29, 'address': 'Soowon', 'account':95211001},
{'name': '김설준', 'age': 25, 'address': 'Dokyo', 'account':151000215},
{'name': '존리', 'age': 58, 'address': 'Bucheon', 'account':5554422100},
{'name': '최인수', 'age': 30, 'address': 'Incheon', 'account':52200005},
{'name': '유재석', 'age': 45, 'address': 'Seoul', 'account':88112155500}
]
df = pd.DataFrame(customer, columns=['name', 'age', 'address', 'account'])
위와 같은 샘플을 사용하여 실습을 진행하였다. 데이터프레임 객체인 df를 print() 함수로 출력해주면 다음과 같은 테이블이 나타난다.
1. 인덱스 번호 2번째부터 출력
print(df.iloc[2:])
2. 나이가 50 이상인 row 만 추력
# 컬럼에 접근시 df.컬럼
print(df[df.age>=50])
# 쿼리를 '' 으로 묶어줘야
print(df.query('age >= 50'))
컬럼에 특정 조건을 부여하고 싶은 경우, pd.age와 같이 데이터 프레임 객체에 컬럼명을 붙여 접근하거나 pd 객체의 query() 메소드를 사용할 수 있다. 단 query를 사용하는 경우, query는 ""로 문자열 처리를 해주어야 한다. 또한 데이터 프레임 객체 없이 컬럼에 직접 접근해야 한다. 두 방식 모두 아래와 같은 결과를 도출한다.
3. 나이가 29살이면서 수원에 사는 고객 조회하기
print(df[(df.age == 29) & (df.address == 'Soowon')])
print(df.query("(address == 'Soowon') and (age == 29)"))
4. 컬럼 이름 바꾸기
df.columns = [1,2,3,4]
5. 두 개의 Series를 컬럼으로 받아 데이터 프레임 만들기
s1 = pd.Series([1,2,3])
s2 = pd.Series(['one', 'two', 'three'])
df2 = pd.DataFrame(dict(num=s1, word=s2))
print(df2)
6. CSV 파일로 저장하기
df2.to_csv('customer.csv')
실습을 진행하는 파일과 같은 디렉터리 안에 아래와 같은 csv 파일이 저장되는 것을 확인할 수 있다.
7. 헤더, index 값 없이 CSV 파일 저장하기
df2.to_csv('customer.csv', header=False, index=False)
8. CSV 파일 가져오기
df3 = pd.read_csv('hello.csv')
9. CSV 파일 가져오면서 헤더 추가하기
df3 = pd.read_csv('hello.csv', names=['name', 'age', 'address', 'account'])
10. tab(\t)으로 구분되어 있는 CSV 테이블 파일 가져오기
df3 = pd.read_csv('customer.csv', delimiter='\t')
print(df3)
반응형
'python > pandas' 카테고리의 다른 글
[PANDAS] 한국은행 기준 금리 데이터 분석 (0) | 2022.05.06 |
---|---|
PANDAS 기초 실습 (iloc, loc, filter, OrderedDict) (0) | 2022.01.26 |
[PANDAS] 시중 은행 오프라인 점포 추이 분석 (0) | 2022.01.18 |
PANDAS 기초 - (2) (DataFrame) (0) | 2022.01.17 |
PANDAS 기초 (Series, DataFrame) (0) | 2022.01.17 |
Comments