웹사이트 검색

팬더 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 문서