주제
데이터의 양을 제한해서 읽어오는 방법에 대해 배웠다.
컬럼 이름을 설정하는 방법에 대해 배웠다.
앞 시간에 플랫 파일을 읽어 데이터프레임으로 로드하는 방법을 배웠다.
플랫 파일을 읽을 때, 전부가 아니라 일부만 읽어서 사용해야하는 경우도 있을 것이다.
오늘은 로드할 데이터의 양을 제한하는 방법에 대해 배운다.
- 예시
a.csv
파일에 저장된 데이터가 180000개의 행과 200개의 열로 이뤄져있다.
- 만약 이 데이터를 전부 읽을 때 컴퓨팅 자원이 넉넉하다면 쉽게 처리할 수 있겠지만, 필요한 컴퓨터 자원이 부족한 경우 작업을 정상적으로 진행할 수 없게된다.
컬럼 제한하기
usecols
사용하기- 가져올 열 이름 또는 열 번호를 사용할 수 있다.
tax_data_v1과 tax_data_v2는 동일하다.col_names = ['STATEFIPS', 'STATE', 'zipcode', 'agi_stub', 'N1'] col_nums = [0, 1, 2, 3, 4] tax_data_v1 = pd.read_csv('us_tax_data_2016.csv', usecols=col_names) tax_data_v2 = pd.read_csv('us_tax_data_2016.csv', usecols=col_nums)
로우 제한하기
nrows
사용하기- 가져올 행의 수를 입력하여 읽을 행의 수를 제한한다.
tax_data_first1000 = pd.read_csv('us_tax_data_2016.csv', nrows=1000)
nrow
와skiprows
는 함께 사용하면 효과적이다.skiprows
는 행을 건너뛸지, 몇 개의 행을 건너뛸지 결정한다. 특정 번호 리스트를 넘겨주면 해당 번호의 행은 가져오지 않는다.
- 판다스에서는 기본값으로
header
를 첫 행으로 설정하여 읽는다.header=None
으로 설정하면 열 이름이 있는 행을 설정하지 않게 된다.
tax_data_next500 = pd.read_csv('us_tax_data_2016.csv',
nrows=500,
skiprows=1000,
header=None)
위 코드를 해석해보면, 'us_tax_data_2016.csv'파일을 읽는다. 1000개의 행을 건너뛰고 다음 500개의 행을 읽는다. header가 포함되지 않기 때문에 header 인수를 None
으로 설정한다.
위 그림처럼 컬럼의 이름이 없는 것을 확인할 수 있다.
컬럼 이름 할당하기
컬럼의 이름이 없을 때 어떻게 컬럼 이름을 설정할 수 있을까?
names
인수를 사용하면 된다.- 목록에는 데이터의 모든 열에 대한 이름이 포함되어야 한다.
- 열 이름을 바꾸고 싶으면 컬럼 이름을 가져오고 난 뒤에 바꾸는 작업을 수행해야 한다.
- 열이 적은 경우, 수동으로 작성할 수 있다.
Uploaded by Notion2Tistory v1.1.0