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