Nasıl düzeltilir: nesne ve int64 sütunlarını birleştirmeye çalışıyorsunuz
Pandaları kullanırken karşılaşabileceğiniz bir hata:
ValueError : You are trying to merge on int64 and object columns.
If you wish to proceed you should use pd.concat
Bu hata, iki panda DataFrame’i birleştirmeye çalıştığınızda ancak birleştirdiğiniz sütun bir DataFrame’de bir nesne ve diğer DataFrame’de bir tam sayı olduğunda ortaya çıkar.
Aşağıdaki örnekte bu hatanın pratikte nasıl düzeltileceği gösterilmektedir.
Hata nasıl yeniden oluşturulur?
Diyelim ki aşağıdaki iki panda DataFrame’i oluşturduk:
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
Şimdi iki DataFrame’i birleştirmeye çalıştığımızı varsayalım:
#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
İlk DataFrame’deki yıl değişkeni bir tamsayı, ikinci DataFrame’deki yıl değişkeni ise bir nesne olduğundan ValueError alıyoruz.
Hata nasıl düzeltilir?
Bu hatayı düzeltmenin en kolay yolu, ikinci DataFrame’in yıl değişkenini bir tam sayıya dönüştürmek ve ardından birleştirme işlemini gerçekleştirmektir.
Aşağıdaki sözdizimi bunun nasıl yapılacağını gösterir:
#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
Herhangi bir ValueError almadığımızı ve iki DataFrame’i başarılı bir şekilde tek bir DataFrame’de birleştirmeyi başardığımızı unutmayın.
Ek kaynaklar
Aşağıdaki eğitimlerde Python’daki diğer yaygın hataların nasıl düzeltileceği açıklanmaktadır:
Nasıl düzeltilir? Sütunlar çakışıyor ancak son ek belirtilmemiş
Nasıl düzeltilir: ‘numpy.ndarray’ nesnesinin ‘append’ özelliği yok
Nasıl düzeltilir? Tüm skaler değerleri kullanıyorsanız bir dizin iletmeniz gerekir