Cara memperbaiki: anda mencoba menggabungkan objek dan kolom int64


Kesalahan yang mungkin Anda temui saat menggunakan pandas adalah:

 ValueError : You are trying to merge on int64 and object columns.
            If you wish to proceed you should use pd.concat

Kesalahan ini terjadi saat Anda mencoba menggabungkan dua panda DataFrames tetapi kolom tempat Anda menggabungkan adalah objek dalam satu DataFrame dan bilangan bulat di DataFrame lainnya.

Contoh berikut menunjukkan cara memperbaiki kesalahan ini dalam praktiknya.

Bagaimana cara mereproduksi kesalahan tersebut

Katakanlah kita membuat dua panda DataFrames berikut:

 import pandas as pd

#createDataFrame
df1 = pd. DataFrame ({' year ': [2015, 2016, 2017, 2018, 2019, 2020, 2021],
                    ' sales ': [500, 534, 564, 671, 700, 840, 810]})

df2 = pd. DataFrame ({' year ': ['2015', '2016', '2017', '2018', '2019', '2020', '2021'],
                    ' refunds ': [31, 36, 40, 40, 43, 70, 62]})

#view DataFrames
print (df1)

   year sales
0 2015 500
1 2016 534
2 2017 564
3 2018 671
4 2019 700
5,2020 840
6 2021 810

print (df2)

   year refunds
0 2015 31
1 2016 36
2 2017 40
3 2018 40
4 2019 43
5 2020 70
6 2021 62

Sekarang misalkan kita mencoba menggabungkan dua DataFrame:

 #attempt to merge two DataFrames
big_df = df1. merge (df2, on=' year ', how=' left ')

ValueError : You are trying to merge on int64 and object columns.
            If you wish to proceed you should use pd.concat

Kami menerima ValueError karena variabel tahun di DataFrame pertama adalah bilangan bulat tetapi variabel tahun di DataFrame kedua adalah objek.

Bagaimana cara memperbaiki kesalahan tersebut

Cara termudah untuk memperbaiki kesalahan ini adalah dengan mengonversi variabel tahun dari DataFrame kedua menjadi bilangan bulat dan kemudian melakukan penggabungan.

Sintaks berikut menunjukkan cara melakukan ini:

 #convert year variable in df2 to integer
df2[' year ']=df2[' year ']. astype (int)

#merge two DataFrames
big_df = df1. merge (df2, on=' year ', how=' left ')

#view merged DataFrame
big_df

	year sales refunds
0 2015 500 31
1 2016 534 36
2 2017 564 40
3 2018 671 40
4 2019 700 43
5 2020 840 70
6 2021 810 62

Perhatikan bahwa kami tidak menerima ValueError apa pun dan kami berhasil menggabungkan kedua DataFrame menjadi satu.

Sumber daya tambahan

Tutorial berikut menjelaskan cara memperbaiki kesalahan umum lainnya dengan Python:

Cara Memperbaiki: Kolom tumpang tindih tetapi tidak ada akhiran yang ditentukan
Cara Memperbaiki: Objek ‘numpy.ndarray’ tidak memiliki atribut ‘append’
Cara memperbaiki: Jika Anda menggunakan semua nilai skalar, Anda harus meneruskan indeks

Tambahkan komentar

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