일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Google Spreadsheet
- Apache
- Tkinter
- math
- Redshift
- Excel
- Kotlin
- django
- string
- Java
- array
- Python
- hive
- Mac
- Github
- c#
- Google Excel
- PostgreSQL
- matplotlib
- PANDAS
- google apps script
- GIT
- 파이썬
- PySpark
- list
- dataframe
- SQL
- numpy
- gas
- Today
- Total
달나라 노트
Python Pandas : isin (각각의 요소가 DataFrame 또는 Series에 존재하는지 파악) 본문
Python Pandas : isin (각각의 요소가 DataFrame 또는 Series에 존재하는지 파악)
CosmosProject 2021. 1. 7. 11:05
Pandas에서는 어떤 list에 존재하는 요소가 대상 DataFrame이나 Series에 존재 하는지를 True(존재), False(존재안함)로 반환해주는 isin method를 제공합니다.
import pandas as pd
list_test = [1, 2, 3, 4, 5]
seri_test = pd.Series(list_test)
print(seri_test)
print(type(seri_test))
- Output
0 1
1 2
2 3
3 4
4 5
dtype: int64
<class 'pandas.core.series.Series'>
먼저 test용 Series를 만듭시다.
seri_test_1 = seri_test.isin([1, 3, 5])
print(seri_test_1)
print(type(seri_test_1))
- Output
0 True
1 False
2 True
3 False
4 True
dtype: bool
<class 'pandas.core.series.Series'>
테스트로 만든 Series에 isin을 적용했습니다.
isin의 인자로서는 list [1, 3, 5]를 전달했습니다.
즉 위 코드의 뜻은 seri_test라는 Series에 존재하는 모든 요소를 대상으로 1, 3, 5라는 값은 True를 1, 3, 5 이외의 값은 False를 반환합니다.
따라서 index = 0, 2, 4에 해당하는 값은 각각 1, 3, 5이므로 index = 0, 2, 4는 True값이며,
index = 1, 3에 해당하는 값은 1 또는 3 또는 5가 아니므로 False가 반환된 것을 알 수 있습니다.
그리고 isin을 적용한 seri_test는 Series였으므로 반환된 값도 Seires입니다.
import pandas as pd
dict_test = {
'col1': [1, 2, 3, 4, 5],
'col2': ['a', 'b', 'c', 'd', 'e']
}
df_test = pd.DataFrame(dict_test)
print(df_test)
print(type(df_test))
- Output
col1 col2
0 1 a
1 2 b
2 3 c
3 4 d
4 5 e
<class 'pandas.core.frame.DataFrame'>
이제는 DataFrame에 적용시키기 위해 테스트용 DataFrame을 만들어봅시다.
isin_test_1 = df_test.isin([1, 2, 'a', 'c', 'z'])
print(isin_test_1)
print(type(isin_test_1))
- Output
col1 col2
0 True True
1 True False
2 False True
3 False False
4 False False
<class 'pandas.core.frame.DataFrame'>
df_test라는 DataFrame 전체에 isin을 적용시켰습니다.
이런 경우 DataFrame에 있는 모든 각각의 값에 대해 주어진 list([1, 2, 'a', 'c', 'z']) 속에 존재하는 값인지를 체크합니다.
DataFrame에 isin을 적용했으니 리턴되는 결과도 DataFrame이며,
Output을 보면 isin에 주어진 list 속 값에 포함되는 위치만 True로 표시되었음을 알 수 있습니다.
isin_test_2 = df_test['col2'].isin(['b', 'd'])
print(isin_test_2)
print(type(isin_test_2))
- Output
0 False
1 True
2 False
3 True
4 False
Name: col2, dtype: bool
<class 'pandas.core.series.Series'>
DataFrmae에서 하나의 column만을 Series로 추출하여 isin을 적용시킬 수도 있습니다.
이 경우 당연히 return값도 Series입니다.
'Python > Python Pandas' 카테고리의 다른 글
Python Pandas : fillna (DataFrame에서 NaN값을 replace 하기) (0) | 2021.01.20 |
---|---|
Python Pandas : to_clipboard (DataFrame 복사하기) (0) | 2021.01.12 |
Python Pandas : sort_values (DataFrame의 정렬, DataFrame 정렬하기) (0) | 2021.01.06 |
Python Pandas : astype (DataFrame의 컬럼 Data type 바꾸기) & dtype(Series의 Data type 추출) (0) | 2021.01.06 |
Python Pandas : concat (Series 합치기, DataFrame 합치기) (0) | 2021.01.05 |