일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- git
- 파이썬
- win32com
- 파이썬3
- Outlook
- 파워포인트
- office
- Windows11
- 파이썬GUI
- pythongui
- 윈도우11
- 안드로이드
- html
- 문자열
- Excel
- 오피스
- 비주얼베이직
- 깃
- 윈도우10
- Windows10
- matlab
- windows
- pandas
- VBA
- Android
- python3
- 엑셀
- pyqt5
- 아웃룩
- python
Appia의 IT세상
파이썬[Python] Pandas, Reindex - Row/Column Label(Index)구조 및 이름 변경하기 본문
파이썬[Python] Pandas, Reindex - Row/Column Label(Index)구조 및 이름 변경하기
Appia 2020. 3. 29. 07:04이번 포스팅에서는 Pandas에서 자주 사용하는 Reindex에서 대해서 살펴보고자 합니다. Reindex는 가장 쉽게 Row/Column의 Label 값을 변경하는 데 가장 많이 사용됩니다. 하지만, 이 외에도 다른 DataFrame의 구조에 맞게 변경 시킨는 방법등에도 사용이 됩니다.
그래서 이 Reindex에 대해서 간단히 예제를 통해서 어떻게 사용되는 지 살펴보겠습니다.
먼저, Column과 Index의 구조를 바꾸는 방법으로 Reindex를 사용합니다. 그럼 먼저 다음 예시를 한번 살펴보겠습니다.
example)
import pandas as pd # Series 생성 ds = {'Name': pd.Series(['Choi', 'Lee', 'Lee', 'Choi','Kim']), 'Age': pd.Series([29, 26, 25, 25, 27]), 'Rating': pd.Series([2.56, 3.20, 4.6, 3.2, 4.1])} # DataFrame 생성 df = pd.DataFrame(ds) print(df) df_rein = df.reindex(index = [0,2,4], columns=['Age','Name',"Grade"]) print("Reindex : ") print(df_rein) | cs |
result)
Name Age Rating 0 Choi 29 2.56 1 Lee 26 3.20 2 Lee 25 4.60 3 Choi 25 3.20 4 Kim 27 4.10 Reindex : Age Name Grade 0 29 Choi NaN 2 25 Lee NaN 4 27 Kim NaN | cs |
먼저 위의 값을 원래 DataFrame이고, "Reindex"는 reindex를 통해서 변환이 된것입니다. 기존에 Age와 Name의 위치가 바뀌었습니다. 여기에 제가 새로운 Column Label인 Grade를 입력했는데, 이 부분은 기존 데이터 값에서 존재하지 않았기 때문에 NaN 표시로 됩니다.
그럼 이번에는 다른 Data Frame의 구조에 맞게 기존 DataFrame의 형태를 바꾸는 방법에 대한 reindex를 살펴보도록 하겠습니다. 이런 방식으로 사용하실 경우에는 reindex_like()명령어를 사용하시면 됩니다.
example)
import pandas as pd import numpy as np df1 = pd.DataFrame(np.random.randn(10,3),columns=['n1','n2','n3']) df2 = pd.DataFrame(np.random.randn(7,3),columns=['n1','n3','n2']) print(df1) print("reindex :") print (df1.reindex_like(df2)) | cs |
result)
n1 n2 n3 0 0.427736 -1.024115 -0.898372 1 -0.758645 0.602594 -0.615543 2 -0.897615 -1.391808 -1.997425 3 0.675451 0.949994 1.404764 4 -0.056839 1.359540 0.453744 5 -1.784381 -1.682699 0.971313 6 -2.251771 1.668413 -1.558727 7 -1.051493 0.496562 0.060498 8 0.597071 -0.197669 2.338056 9 -0.180875 0.705909 1.018296 reindex : n1 n3 n2 0 0.427736 -0.898372 -1.024115 1 -0.758645 -0.615543 0.602594 2 -0.897615 -1.997425 -1.391808 3 0.675451 1.404764 0.949994 4 -0.056839 0.453744 1.359540 5 -1.784381 0.971313 -1.682699 6 -2.251771 -1.558727 1.668413 | cs |
위의 결과를 한번 살펴보시면, reindex_like()를 통해서 column위치를 바꾸거나, 아니면, row를 인자로 받은 DataFrame의 구조에 맞게 변경할 수 있습니다.
그럼 이번에는 column/row의 label의 이름을 변경하는 방법에 대해서 살펴보겠습니다.
example)
import pandas as pd import numpy as np df1 = pd.DataFrame(np.random.randn(4,3),columns=['n1','n2','n3']) print (df1) print("Rename : ") print (df1.rename(columns={'n1' : 'c1', 'n2' : 'c2'}, index = {0 : 'kim', 1 : 'Choi', 2 : 'appia'})) | cs |
result)
n1 n2 n3 0 -0.283707 0.064716 -0.481464 1 -0.965434 -0.521220 -0.917547 2 -0.481276 0.909804 1.070735 3 -1.653430 -0.290770 0.118492 Rename : c1 c2 n3 kim -0.283707 0.064716 -0.481464 Choi -0.965434 -0.521220 -0.917547 appia -0.481276 0.909804 1.070735 3 -1.653430 -0.290770 0.118492 | cs |
위에서 보는 바와같이 rename을 이용해서 Column/Row의 Label이름을 변경해봤습니다.
이번 포스팅에서는 reindex를 이용해서, DataFrame의 구조를 변경하거나, Row/Column의 label을 변경하는 방법에 대해서 살펴봤습니다. 도움이 되시길 바랍니다. 혹 궁금하시거나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다.
'Python > Python Pandas' 카테고리의 다른 글
파이썬[Python] Pandas, DataFrame의 데이터 정렬하기(Sort) (0) | 2020.04.01 |
---|---|
파이썬[Python] Pandas, DataFrame 루프(Iteration) 돌기 (1) | 2020.03.31 |
파이썬[Python] Pandas, 기술 통계[descriptive statistics] 메소드 (0) | 2020.03.27 |
파이썬[Python] Pandas, DataFrame 기본 메소드 기능 (0) | 2020.03.25 |
파이썬[Python] Pandas, Series 기본 메소드 기능 (0) | 2020.03.24 |