Python에서 cbind를 사용하는 방법(r과 동일)


R의 cbind 함수( column-bind 의 약자)는 데이터 프레임을 열별로 결합하는 데 사용할 수 있습니다.

pandas concat() 함수를 사용하여 Python에서 동일한 기능을 수행할 수 있습니다.

 df3 = pd. concat ([df1, df2], axis= 1 )

다음 예에서는 이 기능을 실제로 사용하는 방법을 보여줍니다.

예제 1: Python에서 동일한 인덱스 값으로 cbind 사용

다음 두 개의 팬더 DataFrame이 있다고 가정해 보겠습니다.

 import pandas as pd

#define DataFrames
df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E'],
                    ' points ': [99, 91, 104, 88, 108]})

print (df1)

  team points
0 to 99
1 B 91
2 C 104
3 D 88
4 E 108

df2 = pd. DataFrame ({' assists ': ['A', 'B', 'C', 'D', 'E'],
                    ' rebounds ': [22, 19, 25, 33, 29]})

print (df2)

  rebound assists
0 to 22
1 B 19
2 C 25
3 D 33
4 E 29

concat() 함수를 사용하여 두 DataFrame을 열별로 빠르게 연결할 수 있습니다.

 #column-bind two DataFrames into new DataFrame
df3 = pd. concat ([df1, df2], axis= 1 )

#view resulting DataFrame
df3

	team points assists rebounds
0 to 99 to 22
1 B 91 B 19
2 C 104 C 25
3 D 88 D 33
4 E 108 E 29

예제 2: 인덱스 값이 같지 않은 Python에서 cbind 사용

다음 두 개의 팬더 DataFrame이 있다고 가정해 보겠습니다.

 import pandas as pd

#define DataFrames
df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E'],
                    ' points ': [99, 91, 104, 88, 108]})

print (df1)

  team points
0 to 99
1 B 91
2 C 104
3 D 88
4 E 108

df2 = pd. DataFrame ({' assists ': ['A', 'B', 'C', 'D', 'E'],
                    ' rebounds ': [22, 19, 25, 33, 29]})

df2. index = [6, 7, 8, 9, 10]

print (df2)

   rebound assists
6 to 22
7 B 19
8 C 25
9 D 33
10 E 29

두 DataFrame의 인덱스 값은 동일하지 않습니다.

concat() 함수를 사용하여 이들을 연결하려고 하면 다음과 같은 결과를 얻게 됩니다.

 #attempt to column-bind two DataFrames
df3 = pd. concat ([df1, df2], axis= 1 )

#view resulting DataFrame
df3

	team points assists rebounds
0 to 99.0 NaN NaN
1 B 91.0 NaN NaN
2 C 104.0 NaN NaN
3 D 88.0 NaN NaN
4 E 108.0 NaN NaN
6 NaN NaN A 22.0
7 NaN NaN B 19.0
8 NaN NaN C 25.0
9 NaN NaN D 33.0
10 NaN NaN E 29.0

이는 우리가 원한 결과가 아닙니다.

이 문제를 해결하려면 먼저 각 DataFrame을 연결하기 전에 각 DataFrame의 인덱스를 재설정해야 합니다.

 import pandas as pd

#define DataFrames
df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E'],
                    ' points ': [99, 91, 104, 88, 108]})

df2 = pd. DataFrame ({' assists ': ['A', 'B', 'C', 'D', 'E'],
                    ' rebounds ': [22, 19, 25, 33, 29]})

df2. index = [6, 7, 8, 9, 10]

#reset index of each DataFrame
df1. reset_index (drop= True , place= True )
df2. reset_index (drop= True , place= True )

#column-bind two DataFrames
df3 = pd. concat ([df1, df2], axis= 1 )

#view resulting DataFrame
df3

	team points assists rebounds
0 to 99 to 22
1 B 91 B 19
2 C 104 C 25
3 D 88 D 33
4 E 108 E 29

이 DataFrame은 이전 예제에서 얻은 것과 일치합니다.

추가 리소스

다음 튜토리얼에서는 Python에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

인덱스에 두 개의 Pandas DataFrame을 병합하는 방법
여러 열에 걸쳐 Pandas DataFrame을 병합하는 방법
Pandas에서 VLOOKUP을 수행하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다