Cara menggunakan cbind dengan python (setara dengan r)


Fungsi cbind di R, kependekan dari Column-bind , dapat digunakan untuk menggabungkan frame data berdasarkan kolomnya.

Kita dapat menggunakan fungsi pandas concat() untuk melakukan fungsi yang setara dengan Python:

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

Contoh berikut menunjukkan cara menggunakan fungsi ini dalam praktiknya.

Contoh 1: Gunakan cbind dengan Python dengan nilai indeks yang sama

Mari kita asumsikan kita memiliki dua panda DataFrames berikut:

 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

Kita dapat menggunakan fungsi concat() untuk menghubungkan kedua DataFrame ini dengan cepat berdasarkan kolomnya:

 #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

Contoh 2: Menggunakan cbind dengan Python dengan Nilai Indeks Tidak Sama

Mari kita asumsikan kita memiliki dua panda DataFrames berikut:

 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

Perhatikan bahwa kedua DataFrame tidak memiliki nilai indeks yang sama.

Jika kita mencoba menggunakan fungsi concat() untuk menghubungkan keduanya, kita akan mendapatkan hasil sebagai berikut:

 #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

Ini bukanlah hasil yang kami inginkan.

Untuk mengatasi masalah ini, pertama-tama kita perlu menyetel ulang indeks setiap DataFrame sebelum menggabungkannya:

 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

Perhatikan bahwa DataFrame ini cocok dengan yang kita dapatkan pada contoh sebelumnya.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan operasi umum lainnya dengan Python:

Cara menggabungkan dua Pandas DataFrames di index
Cara menggabungkan Pandas DataFrames di beberapa kolom
Bagaimana melakukan VLOOKUP di Pandas

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *