วิธีแก้ไข: คุณกำลังพยายามผสานวัตถุและคอลัมน์ int64
ข้อผิดพลาดที่คุณอาจพบเมื่อใช้นุ่นคือ:
ValueError : You are trying to merge on int64 and object columns.
If you wish to proceed you should use pd.concat
ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณพยายามรวม DataFrames แพนด้าสองตัว แต่คอลัมน์ที่คุณกำลังผสานนั้นเป็นวัตถุใน DataFrame หนึ่งและเป็นจำนวนเต็มใน DataFrame อื่น
ตัวอย่างต่อไปนี้แสดงวิธีการแก้ไขข้อผิดพลาดนี้ในทางปฏิบัติ
วิธีการทำซ้ำข้อผิดพลาด
สมมติว่าเราสร้าง DataFrames แพนด้าสองตัวต่อไปนี้:
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
ตอนนี้ สมมติว่าเราพยายามรวม DataFrames ทั้งสองเข้าด้วยกัน:
#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
เราได้รับ ValueError เนื่องจากตัวแปร ปี ใน DataFrame แรกเป็นจำนวนเต็ม แต่ตัวแปร ปี ใน DataFrame ที่สองเป็นวัตถุ
วิธีการแก้ไขข้อผิดพลาด
วิธีที่ง่ายที่สุดในการแก้ไขข้อผิดพลาดนี้คือเพียงแปลงตัวแปร ปี ของ DataFrame ที่สองให้เป็นจำนวนเต็ม จากนั้นจึงทำการผสาน
ไวยากรณ์ต่อไปนี้แสดงวิธีการทำเช่นนี้:
#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
โปรดทราบว่าเราไม่ได้รับ ValueError ใดๆ และเราจัดการเพื่อรวม DataFrames ทั้งสองเป็นอันเดียวได้สำเร็จ
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดทั่วไปอื่นๆ ใน Python:
วิธีแก้ไข: คอลัมน์ซ้อนทับกันแต่ไม่ได้ระบุส่วนต่อท้าย
วิธีแก้ไข: วัตถุ ‘numpy.ndarray’ ไม่มีแอตทริบิวต์ ‘ผนวก’
วิธีแก้ไข: หากใช้ค่าสเกลาร์ทั้งหมด คุณจะต้องผ่านดัชนี