팬더 concat() 예제
Pandas concat() 메서드는 DataFrames 및 Series와 같은 Pandas 개체를 연결하는 데 사용됩니다. 연결 작업의 동작을 변경하기 위해 다양한 매개 변수를 전달할 수 있습니다.
1. 팬더 concat() 구문
concat() 메서드 구문은 다음과 같습니다.
concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,
keys=None, levels=None, names=None, verify_integrity=False,
sort=None, copy=True)
- objs: 연결할 pandas 개체의 시퀀스입니다.
- join: 다른 축에서 인덱스를 처리하는 방법을 정의하는 선택적 매개 변수입니다. 유효한 값은 'inner' 및 'outer'입니다.
- join_axes: 버전 0.25.0에서 더 이상 사용되지 않습니다.
- ignore_index: True인 경우 원본 개체의 인덱스가 무시되고 0,1,2…n의 일련의 인덱스가 결과에 할당됩니다.
- keys: 결과 인덱스에 식별자를 추가하는 시퀀스입니다. 출력에서 소스 개체를 표시하는 데 유용합니다.
- 레벨: 다중 인덱스를 생성하기 위한 고유한 레벨을 지정하는 시퀀스.
- 이름: 결과 계층적 색인의 수준 이름.
- verify_integrity: 새로 연결된 축에 중복이 포함되어 있는지 확인합니다. 비용이 많이 드는 작업입니다.
- 정렬: 조인이 '외부'일 때 아직 정렬되지 않은 경우 연결되지 않은 축을 정렬합니다. 버전 0.23.0에 추가됨
- 복사: False인 경우 불필요하게 데이터를 복사하지 않습니다.
추천 도서: Python Pandas 튜토리얼
2. 판다스 concat() 예제
두 개의 DataFrame 개체를 연결하는 간단한 예를 살펴보겠습니다.
import pandas
d1 = {"Name": ["Pankaj", "Lisa"], "ID": [1, 2]}
d2 = {"Name": "David", "ID": 3}
df1 = pandas.DataFrame(d1, index={1, 2})
df2 = pandas.DataFrame(d2, index={3})
print('********\n', df1)
print('********\n', df2)
df3 = pandas.concat([df1, df2])
print('********\n', df3)
산출:
********
Name ID
1 Pankaj 1
2 Lisa 2
********
Name ID
3 David 3
********
Name ID
1 Pankaj 1
2 Lisa 2
3 David 3
연결은 행 방향, 즉 0축으로 수행됩니다. 또한 소스 DataFrame 개체의 인덱스는 출력에 보존됩니다.
3. 열 즉 1축을 따라 연결
d1 = {"Name": ["Pankaj", "Lisa"], "ID": [1, 2]}
d2 = {"Role": ["Admin", "Editor"]}
df1 = pandas.DataFrame(d1, index={1, 2})
df2 = pandas.DataFrame(d2, index={1, 2})
df3 = pandas.concat([df1, df2], axis=1)
print('********\n', df3)
산출:
********
Name ID Role
1 Pankaj 1 Admin
2 Lisa 2 Editor
열에 따른 연결은 원본 개체에 개체의 다른 종류의 데이터가 포함되어 있는 경우 의미가 있습니다.
4. 연결된 DataFrame 인덱스에 키 할당
d1 = {"Name": ["Pankaj", "Lisa"], "ID": [1, 2]}
d2 = {"Name": "David", "ID": 3}
df1 = pandas.DataFrame(d1, index={1, 2})
df2 = pandas.DataFrame(d2, index={3})
df3 = pandas.concat([df1, df2], keys=["DF1", "DF2"])
print('********\n', df3)
산출:
********
Name ID
DF1 1 Pankaj 1
2 Lisa 2
DF2 3 David 3
5. 연결에서 소스 DataFrame 개체 무시
d1 = {"Name": ["Pankaj", "Lisa"], "ID": [1, 2]}
d2 = {"Name": "David", "ID": 3}
df1 = pandas.DataFrame(d1, index={10, 20})
df2 = pandas.DataFrame(d2, index={30})
df3 = pandas.concat([df1, df2], ignore_index=True)
print('********\n', df3)
산출:
********
Name ID
0 Pankaj 1
1 Lisa 2
2 David 3
이것은 소스 객체의 인덱스가 별로 의미가 없을 때 유용합니다. 따라서 이를 무시하고 기본 인덱스를 출력 DataFrame에 할당할 수 있습니다.
6. 참고문헌
- pandas.concat() API 문서