반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 코드잇
- HTML
- 코딩
- 결정트리
- 코딩독학
- 코드잇TIL
- CSS
- Seaborn
- 오늘도코드잇
- 파이썬
- for반복문
- 머신러닝
- 영국석사
- 데이터분석
- 선형회귀
- 코딩공부
- 행렬
- 경사하강법
- 로지스틱회귀
- numpy
- SQL
- 나혼자코딩
- 코드잇 TIL
- 런던
- matplotlib
- 판다스
- 윈도우함수
- sql연습문제
- 유학생
- 다항회귀
Archives
- Today
- Total
영국 척척석사 유학생 일기장👩🏻🎓
(파이썬) 판다스(Pandas) 시리즈 만들기, .loc/.iloc 이용해서 요소들에 액세스하고 삭제하기 본문
코딩공부/Python
(파이썬) 판다스(Pandas) 시리즈 만들기, .loc/.iloc 이용해서 요소들에 액세스하고 삭제하기
life-of-nomad 2024. 6. 18. 11:39728x90
반응형
지난 글에서 넘파이(NumPy)에 대해 알아보았습니다. 이번 글에서는 판다스(Pandas)의 시리즈 만드는 방법, 요소에 액세스하고 삭제하는 방법에 대해 알아보겠습니다.
🔻(참고)넘파이🔻
1. NumPy ndarray와 Pandas Series 의 차이점
- 둘의 가장 큰 차이점은 판다스 시리즈는 각각의 요소에 인덱스 레이블을 지정할 수 있다는 점입니다. 즉, 판다스 시리즈의 인덱스에 원하는 대로 이름을 정할 수 있습니다.
- 또 다른 차이점은 판다스에는 다양한 데이터 유형을 담을 수 있다는 점입니다.
2. Pandas Series
- Pandas Series는 array(배열)과 비슷한 1차원 객체로써 숫자나 문자열 같은 다양한 데이터 유형을 담을 수 있고 축 레이블을 제공할 수도 있습니다.
1) Pandas Series 만들기
- 먼저 판다스를 파이썬에 import 해보겠습니다. 보통 pandas는 pd로써 임포트합니다.
import pandas as pd
- 판다스 시리즈는 pd.Series(data, index)라는 명령을 써서 만들 수 있습니다.
- 여기서 index는 레이블로 된 리스트입니다.
- 예를 들어, 판다스 시리즈를 사용하여 식료품 목록을 저장해보겠습니다.
- 식품 이름을 인덱스 레이블로 사용하고 구매해야 하는 각각의 식품의 수량을 데이터로 사용합니다.
groceries = pd.Series(data = [30, 6, 'Yes', 'No'], index = [''eggs', 'apples', 'milk', 'bread'])
groceries
- 이런 식으로 판다스 시리즈에서는 첫 번째 열에 인덱스가 표시되고 두 번째 열에는 데이터가 표시됩니다.
- 데이터의 인덱스가 0부터 3이 아니라 우리가 넣은 식품들 입니다.
- 또한, 판다스 시리지의 데이터에는 정수와 문자열이 모두 있습니다.
2) 속성 shape, ndim, size 출력하기
print('Groceries has shape:', groceries.shape)
print('Groceries has dimension:', groceries.ndim)
print('Groceries has a total of', groceries.size, 'elements')
>>> Groceries has shape: (4,)
Groceries has dimension: 1
Groceries has a total of 4 elements
3) 속성 values, index 출력하기
print('The data in Groceries is:', groceries.values)
print('The index of Groceries is:', groceries.index)
>>> The data in Groceries is: [30 6 'Yes' 'No']
The index of Groceries is: Index(['eggs', 'apples', 'milk', 'bread'], dtype='object')
3) 주어진 Series에 어떤 인덱스가 있는지 확인하기
x = 'bananas' in groceries
y = 'bread' in groceries
print('Is bananas an index label in Groceries:', x)
print('Is bread an index label in Groceries:', y)
>>> Is bananas an index label in Groceries: False
Is bread an index label in Groceries: True
3. Pandas Series의 요소들에 액세스하고 삭제하기
1) 인덱스 레이블로 요소에 액세스하기
- Pandas Series를 사용하면 다양한 방식으로 데이터에 액세스할 수 있다는 장점이 있습니다.
- NumPy ndarray에서 요소에 액세스한 방법과 비슷하게 대괄호 [] 안에숫자 인덱스를 넣거나 인덱스 레이블을 사용하여 요소에 액세스할 수 있습니다.
- 숫자 인덱스를 사용할 수 있기 때문에 양수와 음수 정수를 사용하여 각각 Series의 시작 부분이나 끝부분에서 데이터에 액세스할 수 있습니다.
- 다양한 방식으로 요소에 액세스할 수 있기 때문에 우리가 인덱스 레이블을 참조하는지, 혹은 숫자 인덱스를 참조하는지 모호성을 없애기 위해 Pandas Series 에는 우리가 원하는 것을 명시적으로 기술하도록 해주는 .loc와 .iloc라는 속성이 있습니다.
- 속성 .loc 는 location(위치)를 나타내고, 우리가 레이블이 지정된 인덱스를 사용한다는 사실을 명시적으로 설명할 때 사용합니다.
- 그와 유사하게 속성 .iloc는 intenger location(정수 위치)를 나타내며 우리가 숫자 인덱스를 사용한다는 사실을 명시적으로 설명할 때 사용합니다.
print(groceries['eggs'])
>>> 30
print(groceries[['milk', 'bread']])
>>> milk Yes
bread No
dtype: object
print(groceries[[0, 1]])
>>> eggs 30
apples 6
dtype: object
print(groceries[[-1]])
>>> bread No
dtype: object
print(groceries[0])
>>> 30
print(groceries.iloc[[2, 3]])
>>> milk Yes
bread No
dtype: object
2) 인덱스 레이블을 사용하여 요소 변경하기
- Pandas Series도 NumPy ndarray 처럼 mutable(변형가능한)합니다. 즉, Pandas Series를 만든 다음에 요소를 변경할 수 있습니다.
- 예를 들어, 우리가 사야 할 eggs의 개수를 식료품 목록에서 변경해보겠습니다.
groceries['eggs'] = 2
print(groceries)
>>> eggs 2
apples 6
milk Yes
bread No
dtype: object
3) drop()을 사용하여 사본에서 요소 삭제하기
- .drop() 메소드를 사용하면 판다스 시리즈에서 항목을 삭제할 수 있습니다.
- Series.drop(label) 메소드를 쓰면 주어진 Series에서 주어진 label이 삭제됩니다.
- 여기서 Series.drop(label)메소드를 쓰면 Series의 사본에서 요소가 삭제된다는 점에 주의해야 합니다.
- 즉, Sereis 원본은 변경되지 않습니다.
# We display the original grocery list
print(groceries)
>>> eggs 2
apples 6
milk Yes
bread No
dtype: object
# We remove apples from our grocery list. The drop function removes elements out of place
print(groceries.drop('apples'))
>>> eggs 2
milk Yes
bread No
dtype: object
# When we remove elements out of place the original Series remains intact.
# we display our grocery list again
print(groceries)
>>> eggs 2
apples 6
milk Yes
bread No
dtype: object
4) drop()을 사용하여 원본 요소 삭제하기
- .drop() 메소드에서 키워드 inplace=True 로 설정하여 Pandas Series 원본에서 항목을 삭제할 수도 있습니다.
# We display the original grocery list
print(groceries)
>>> eggs 2
apples 6
milk Yes
bread No
dtype: object
# We remove apples from our grocery list in place by setting the inplace keyword to True
groceries.drop('apples', inplace = True)
# When we remove elements in place the original Series its modified.
# we display our grocery list again
print(groceries)
>>> eggs 2
milk Yes
bread No
dtype: object
728x90
반응형
'코딩공부 > Python' 카테고리의 다른 글
(파이썬) Pandas DataFrame 판다스 데이터프레임 만들기 (0) | 2024.06.18 |
---|---|
(파이썬) 판다스 시리즈(Pandas Series)에 대한 산술 연산 (0) | 2024.06.18 |
(파이썬) 서브 패키지 (0) | 2024.06.18 |
(파이썬) 패키지의 개념과 임포트(import)하는 여러 가지 방법, init 파일, all 특수 변수 총정리 (0) | 2024.06.16 |
(파이썬) 모듈과 스크립트의 차이점 총정리 (0) | 2024.06.16 |