본문 바로가기
Python/Pandas

Python-Pandas 함수 및 메서드(30)

by 찐남 2022. 9. 18.

이번 포스팅에서는 데이터 분석에 자주 사용되는
30가지의 유용한 python-pandas 함수/메서드를
정리하겠습니다.

1. 데이터 로드 및 이해
2. 열 또는 행 선택
3. 하나 이상의 열을 사용한 데이터 필터링
4. 데이터 정렬 및 열 삭제
5. 데이터 요약

사용한 데이터는 Kaggle의 Airlines.csv입니다.

pandas 패키지를 로드하는 것으로
시작하겠습니다.

import pandas as pd

1. CSV 파일 로드

# 1. csv 파일의 데이터를 메모리에 로딩
airlines = pd.read_csv("C:/Python_apply/Airlines.csv")

2. 데이터 프레임의 행과 열 수 얻기

# 2. Shape of a dataframe
airlines.shape

# 결과: (539383, 9)

3. 데이터 프레임의 처음/마지막 몇 행 가져오기

# 3.1. 데이터 프레임의 첫 부분 가져오기
airlines.head(n=10)
# 3.2. 데이터 프레임의 끝 부분 가져오기
airlines.tail(n=10)

4. 열의 데이터 유형 가져오기

# 4. 열의 데이터 유형
airlines.dtypes

5. 열 이름을 리스트로 가져오기

airlines.columns.tolist()

6. 숫자 열에 대한 요약 통계 가져오기

airlines.describe()

7. 열의 NA 값 수 얻기

airlines.isna().sum()

8. 데이터 유형이 object/int64인 열 선택

# 8.1. 데이터 유형이 object인 열 선택하기
airlines.select_dtypes(include = 'object').columns

# 결과: Index(['id', 'Flight', 'DayOfWeek', 'Time', 'Length', 'Delay'], dtype='object')

# 8.2. 데이터 유형이 int64인 열 선택하기
airlines.select_dtypes(include = 'int64').columns

# 결과: Index(['id', 'Flight', 'DayOfWeek', 'Time', 'Length', 'Delay'], dtype='object')

9. 열의 값 수 얻기

airlines['Airline'].value_counts(ascending=True)

10. 열에서 고유 값 가져오기

airlines['Airline'].unique()

# 결과: array(['CO', 'US', 'AA', 'AS', 'DL', 'B6', 'HA', 'OO', '9E', 'OH', 'EV', 'XE', 'YV', 'UA', 'MQ', 'FL', 'F9', 'WN'],
# dtype=object)

11. 몇 개의 열 선택

airlines[['id', 'Airline', 'Flight']]

12. .iloc을 사용하여 몇 개의 행 선택

airlines.iloc[:10,]

13. .loc을 사용하여 몇 개의 행과 열을 함께 선택

airlines.loc[:5, ['id', 'Airline', 'Flight']]

14. 열을 사용하여 데이터 필터링

airlines[airlines['Airline'] == 'US']

15. 여러 열을 사용하여 데이터 필터링

airlines[(airlines['Airline'] == 'US') & (airlines['AirportFrom'] == 'PHX') & (airlines['DayOfWeek'] == 1)]

16. OR 조건을 사용하여 데이터 필터링

airlines[(airlines['Airline'] == 'US') | (airlines['AirportFrom'] == 'PHX')]

17. 리스트를 사용한 데이터 필터링

airlineList = ['DL','US']
airlines[airlines['Airline'].isin(airlineList)]

18. 리스트에 없는 데이터 필터링

airlineList = ['DL','US']
airlines[~airlines['Airline'].isin(airlineList)]

19. 열을 사용한 데이터 정렬

airlines.sort_values(by='Airline',ascending=False)

20. 열 이름 바꾸기

airlines.rename(columns={"Airline": "Airline_Code", "AirportFrom":"Airport_From"})

21. groupby를 사용한 데이터 요약

airlines.groupby(['Airline','AirportFrom','AirportTo'], as_index=False)['id'].agg('count')

22. 요약 및 정렬

airlinesSum = airlines.groupby(['Airline','AirportFrom','AirportTo'], as_index=False)['id'].agg('count')
airlinesSum.sort_values(by='id', ascending = False)

23. 여러 값에 대한 요약

airlines.groupby(['Airline','AirportFrom','AirportTo'])['Time'].agg(['sum','count']).reset_index()

24. 여러 열 및 값에 대한 요약

airlines.groupby(['Airline','AirportFrom','AirportTo']).aggregate({'id':'count','Time':'sum'}).reset_index()

25. 새 열 추가

airlines['Country'] = 'USA'

26. 기존 열을 사용하여 열 추가

airlines['CO_SFO'] = (airlines['Airline'] =='CO') & (airlines['AirportFrom'] == 'SFO')
airlines

27. 열 삭제

airlines.drop(['CO_SFO'], axis = 1)

28. 집계와 함께 pivot_table을 사용하여 요약

airlines.pivot_table(index = ['Airline','AirportFrom','AirportTo'], values = ['Time'], aggfunc=['sum','count']).reset_index(col_level=1)

29. 인덱스 열에 고유한 행을 사용할 수 없는 pivot_table을 사용한 데이터 피벗

airlines.pivot_table(index = 'Airline', columns='DayOfWeek', values='id',aggfunc='count', fill_value = 0).reset_index()

30. groupby 및 피벗을 사용하여 요약

airlines1 = airlines.groupby(['Airline','DayOfWeek'], as_index=False)['id'].agg('count').reset_index()
airlines1.pivot(index = ['Airline'], columns = 'DayOfWeek', values = 'id').reset_index()

반응형

댓글