Python

[Pandas] DataFrame 데이터 선택하기

주댕이 2024. 2. 2. 17:57
import pandas as pd
import numpy as np

# DataFrame 데이터 생성
KTX_data = {'경부선 KTX': [39060, 39896, 42005, 43621, 41702, 41266, 32427],
            '호남선 KTX': [7313, 6967, 6873, 6626, 8675, 10622, 9228],
            '경전선 KTX': [3627, 4168, 4088, 4424, 4606, 4984, 5570],
            '전라선 KTX': [309, 1771, 1954, 2244, 3146, 3945, 5766],
            '동해선 KTX': [np.nan,np.nan, np.nan, np.nan, 2395, 3786, 6667]}
index_list = ['2011', '2012', '2013', '2014', '2015', '2016', '2017']

df_KTX = pd.DataFrame(KTX_data, index = index_list)
df_KTX

 

 

# 전체 데이터 중 처음 일부분 또는 끝 일부분만 반환하기

DataFrmae_data.head([n])
DataFrame_data.tail([n])
  • 인자 n을 지정하면 head(n)의 경우 처음 n개의 행의 데이터를 반환하고, tail(n)의 경우 마지막 n개의 행 데이터를 반환한다.
  • 인자n을 지정하지 않으면 기본값으로 5가 지정된다.
df_KTX.head()

df_KTX.tail(3)

 

 

# 연속된 구간의 행 데이터 선택하기

DataFrame_data[행_시작_위치:행_끝_위치]​
  • DataFrame 데이터(DataFrame_data) 중에서 '행_시작_위치 ~ 행_끝_위치-1'까지의 행 데이터를 반환한다.
  • 행의 위치는 0부터 시작한다.
df_KTX[0:2]

 

 

# 하나의 열만 선택하기

DataFrame_data[column_name]
  • DataFrame_data에서 column_name으로 지정한 열이 선택된다.
df_KTX['경부선 KTX']
# 2011    39060
# 2012    39896
# 2013    42005
# 2014    43621
# 2015    41702
# 2016    41266
# 2017    32427
# Name: 경부선 KTX, dtype: int64

 

 

# index 항목 이름을 지정해 행 선택하기

DataFrame_data.loc[index_name]
  • DataFrame-data의 데이터에서 index가 index_name인 행 데이터를 반환한다.
df_KTX.loc['2011']
# 경부선 KTX    39060.0
# 호남선 KTX     7313.0
# 경전선 KTX     3627.0
# 전라선 KTX      309.0
# 동해선 KTX        NaN
# Name: 2011, dtype: float64

 

 

# index 항목 이름으로 구간을 지정해서 연속된 구간의 행 선택하기

DataFrame_data.loc[start_index_name:end_index_name]
  • DataFrame_data의 데이터 중 index가 start_index_name에서 end_index_name까지 구간의 행 데이터가 선택된다.
df_KTX.loc['2013':'2016']

 

 

# index 항목 이름으로구간을 지정해서 원하는 데이터 선택하기

DataFrame_data.loc[start_index_name:end_index_name[column_name]]
  • DataFrame_data의 colum_name의 열 데이터 중 index가 start_index_name에서 end_index_name까지 구간의 행 데이터가 선택된다.
df_KTX.loc['2013':'2016', ['경부선 KTX', '호남선 KTX']]

 

 

# 조건에 부합하는 데이터 선택하기

DataFrame_data.loc[행 조건식, [컬럼명]]
# embark_town 칼럼에서 Southampton 거주민의 모든 데이터 조회

import seaborn as sns

titanic = sns.load_dataset('titanic')

titanic.loc[titanic['embark_town'] == "Southampton" , :]

 

 

# 여러 조건에 부합하는 데이터 선택하기

  • &: AND 조건
  • |: OR 조건
tips = sns.load_dataset('tips')

tips.loc[(tips['tip'] >= tips['tip'].mean()) &
    (tips['time'] == "Dinner") &
    (tips['size'] == 3) &
    (tips['sex'] == "Male") &
    (tips['day'] == "Sat"), :]

728x90