1.  데이터 선택

1) 열 선택하기

 

👩🏻‍🚀  df['컬럼명'] = df.컬럼명

       ⚡️ 단, 이 방법을 사용하려면 열 이름이 숫자로 시작하지 않고 공백이나 특수 문자 등을 포함하지 않는 등의 조건을 만족해야 함
👩🏻‍🚀  iloc() 및 loc() 메서드를 사용하여 여러 열을 선택할 수도 있음

👩🏻‍🚀  DataFrame의 하나의 열을 선택하면 하나의 Series로 결과 추출

 

a. 단일 컬럼 선택

# 단일 컬럼 선택하기
df = pd.read_csv('../input/weather.csv')
df['temp'] 
# df.temp와 같다

'''
출력 결과)
0       28.7
1       25.2
2       22.1
3       25.3
4       27.2
        ... 
3648    22.1
3649    21.9
3650    21.6
3651    22.9
3652    25.7
Name: temp, Length: 3653, dtype: float64
'''

 

b. 여러 컬럼 선택

# 추출할 열 이름을 리스트에 저장한 다음 []에 전달하면 여러 열을 선택할 수 있음.
df[['date', 'temp']]
# 열 이름을 사용하여 열을 선택하려는 경우 loc를 사용
# df.loc[행 인덱싱 값, 열 인덱싱 값]
df.loc[:, ['date', 'temp']]
# 열 인덱스를 사용하여 추출
# df.iloc[행 인덱스, 열 인덱스]
df.iloc[:, [0,1]]

 

  📌  세 방법 모두 같은 결과 추출

 


 

2) 행 선택하기 

👩🏻‍🚀  인덱스 숫자를 사용하면 행을 슬라이싱할 수 있음

df[0:3]

출력 결과

 


 

3)  레이블로 선택하기  df.loc

 

# 특정 날짜에 해당하는 열을 인덱스 열로 지정
df.index = df['date']
df

출력 결과

 

df.loc['2010-08-01', ['temp', 'mean_wind']]

'''
출력결과)
temp         28.7
mean_wind     3.4
Name: 2010-08-01, dtype: object
'''

 

4)  위치로 선택하기  df.iloc

 

👩🏻‍🚀  iloc[n]과 같이 정수를 입력하면 해당 행을 선택

# 숫자 3은 (위에서 0부터 시작) 4번째 행이라는 뜻.
df.iloc[3]

'''
처리 결과)
date         2010-08-04
temp               25.3
max_wind            6.6
mean_wind           4.2
Name: 2010-08-04, dtype: object
'''
# 특정 행과 열 선택 : 슬라이싱
df.iloc[1:3, 0:2]
# 1~2 행과 0~1열

 

📌  맨 앞의 열은 인덱싱 열이라 해당 x

 

 

 

 


 

5)  불 인덱싱

 

👩🏻‍🚀  하나의 열의 값을 기준으로 데이터를 선택할 수 있음
👩🏻‍🚀  df[df.A > 0]은 df로 부터 A열이 0보다 큰 데이터를 보여줌

 

# 조건에 맞는 데이터를 추출
w = df['temp'] > 30
w

'''
출력 결과)
date
2010-08-01    False
2010-08-02    False
2010-08-03    False
2010-08-04    False
2010-08-05    False
              ...  
2020-07-27    False
2020-07-28    False
2020-07-29    False
2020-07-30    False
2020-07-31    False
Name: temp, Length: 3653, dtype: bool
'''

 

df[w]

출력 결과

 

 

📌  기온이 30도 이상인 데이터만 추출

 

 

 

 


# 최고로 더웠던 날의 모든 정보를 추출
w = df['temp'] == df['temp'].max()
df[w]
# df[df['temp'] == df['temp'].max()]로 써도 된다.


# 조건이 2개 이상인 경우
# 기온이 30도 이상이고, 최대 풍속이 9이상인 데이터
w = (df['temp'] >= 30) & (df['max_wind'] >= 9)
df[w]

+ Recent posts