목차
[파이썬] Pandas Dataframe loc, iloc 함수 정의 및 차이
loc 함수는 라벨(Label) 기준으로 행(Row)과 열(Colum)을 필터(Filter)해 줍니다. 예를 들어 3번 index에 내용을 찾을 때 3번 Index가 가지는 라벨 이름(name)을 통해서 검색합니다. 그리고 index 값을 이용해서 검색도 가능해서 index 검색 시 형 전체를 표기 해줍니다.
iloc는 정수로된 index를 기준으로 필터링 해줍니다. index 값을 이용해서 행과 열 모두 검색 가능합니다. 아래 예제를 통해 쉽게 이해할 수 있습니다.
[파이썬] Pandas Dataframe loc label 필터링 예제
아래 예제는 loc에 조건식을 넣어서 조건에 맞는 값만 출력되게 만든 loc 예제 입니다.
예제 코드>>
import pandas as pd
import numpy as np
df = pd.DataFrame({
"name" : ["James", "James", "Kevin", "Adam", "David", "Adam"],
"math" : [90,50,50,30,100,90],
"physics" : [30,40,80,50,10,50],
"english" : [90,70,30,90,90,40]
})
print("Origial Dataframe")
print(df)
loc_df = df.loc[(df.name == "James") & (df.math > 60)]
print("\nloc Dataframe")
print(loc_df)
4~9번 라인: dataframe 생성
14번 라인: 라벨에서 name 값이 James 이고 math 라벨의 점수가 60이상인 값만을 출력 합니다.
결과>>
Origial Dataframe
name math physics english
0 James 90 30 90
1 James 50 40 70
2 Kevin 50 80 30
3 Adam 30 50 90
4 David 100 10 90
5 Adam 90 50 40
loc Dataframe
name math physics english
0 James 90 30 90
[파이썬] Pandas Dataframe loc index 필터링 예제
loc 함수와 index 번호를 이용한 필터링을 구현하겠습니다.
예제 코드>>
import pandas as pd
import numpy as np
df = pd.DataFrame({
"name" : ["James", "James", "Kevin", "Adam", "David", "Adam"],
"math" : [90,50,50,30,100,90],
"physics" : [30,40,80,50,10,50],
"english" : [90,70,30,90,90,40]
})
print("Origial Dataframe")
print(df)
loc_df = df.loc[2:3]
print("\nloc Dataframe")
print(loc_df)
14번 라인: Dataframe의 index는 0부터 시작이고 2번과 3번 값을 불러 옵니다.
결과>>
Origial Dataframe
name math physics english
0 James 90 30 90
1 James 50 40 70
2 Kevin 50 80 30
3 Adam 30 50 90
4 David 100 10 90
5 Adam 90 50 40
loc Dataframe
name math physics english
2 Kevin 50 80 30
3 Adam 30 50 90
[파이썬] Pandas Dataframe loc 검색 후 업데이트 예제
이번 예제는 loc 필터링 조건에 맞는 값들을 특정 값으로 변경(Update, replace)해주는 예제 입니다.
예제 코드>>
import pandas as pd
import numpy as np
df = pd.DataFrame({
"name" : ["James", "James", "Kevin", "Adam", "David", "Adam"],
"math" : [90,50,50,30,100,90],
"physics" : [30,40,80,50,10,50],
"english" : [90,70,30,90,90,40]
})
print("Origial Dataframe")
print(df)
loc_df = df.loc[(df.name == "James") & (df.math > 60), ["name"]] = ["Super James"]
print("\nloc Dataframe")
print(df)
15번 라인: 조건문을 입력하고 조건에 맞으면 name 라벨 항목 값을 Super James로 변경합니다.
17번 라인: df 에 원본 dataframe 값이 변경 되므로 df를 출력 합니다.
결과>>
Origial Dataframe
name math physics english
0 James 90 30 90
1 James 50 40 70
2 Kevin 50 80 30
3 Adam 30 50 90
4 David 100 10 90
5 Adam 90 50 40
loc Dataframe
name math physics english
0 Super James 90 30 90
1 James 50 40 70
2 Kevin 50 80 30
3 Adam 30 50 90
4 David 100 10 90
5 Adam 90 50 40
[파이썬] Pandas Dataframe iloc 검색 예제
예제 코드>>
import pandas as pd
import numpy as np
df = pd.DataFrame({
"name" : ["James", "James", "Kevin", "Adam", "David", "Adam"],
"math" : [90,50,50,30,100,90],
"physics" : [30,40,80,50,10,50],
"english" : [90,70,30,90,90,40]
})
print("Origial Dataframe")
print(df)
iloc_df = df.iloc[2:4]
print("\niloc Dataframe")
print(iloc_df)
라인14번 : [2:4]의 의미는 index 2, 3을 의미하고 4는 포함하지 않습니다.
결과>>
Origial Dataframe
name math physics english
0 James 90 30 90
1 James 50 40 70
2 Kevin 50 80 30
3 Adam 30 50 90
4 David 100 10 90
5 Adam 90 50 40
iloc Dataframe
name math physics english
2 Kevin 50 80 30
3 Adam 30 50 90
[파이썬] Pandas Dataframe iloc 행렬 검색 예제
이번 예제는 행과 열의 index값을 생각해서 부분 적인 검색을 시행하겠습니다.
예제 코드>>
import pandas as pd
import numpy as np
df = pd.DataFrame({
"name" : ["James", "James", "Kevin", "Adam", "David", "Adam"],
"math" : [90,50,50,30,100,90],
"physics" : [30,40,80,50,10,50],
"english" : [90,70,30,90,90,40]
})
print("Origial Dataframe")
print(df)
iloc_df = df.iloc[0:2,2:4]
print("\niloc Dataframe")
print(iloc_df)
14번 라인: 행(Row)은 0~1번, 열(Column)은 2~3번까지 필터 처리하였습니다.
결과>>
Origial Dataframe
name math physics english
0 James 90 30 90
1 James 50 40 70
2 Kevin 50 80 30
3 Adam 30 50 90
4 David 100 10 90
5 Adam 90 50 40
iloc Dataframe
physics english
0 30 90
1 40 70
'파이썬(Python) > pandas' 카테고리의 다른 글
[Python]Pandas 인덱스, 행/열 이름 List로 출력하기(Index, Value, Name) (0) | 2022.03.11 |
---|---|
[Python] Pandas CSV 파일 읽기 (에러 발생/해결) (0) | 2022.03.05 |
[Python] Pandas dataframe 중복 (동일)값 찾고 삭제하는 방법 (0) | 2022.02.25 |
[Python] Pandas 여러가지 정렬방법(Multi Column, Index 제외 정렬 등) (0) | 2022.02.24 |
[Python]Pandas에서 CSV 파일 읽기 에러 해결 (0) | 2022.02.23 |