将数据帧与左连接合并会导致“无法将浮点NaN转换为整数”

2024-09-30 18:14:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个相关的dataframes-Students(student\u id,name,姓氏)和CourseEnrollments(course\u id,student\u id)。你知道吗

Students
student_id | name | surname
11           aa     aaa
22           bb     bbb
33           cc     ddd

CourseEnrollments
course_id | student_id
44           11     
55           22     
66           11     

我希望合并这两个数据集并保留所有注册,同时在最终数据集中只保留一些注册的学生:

StudentCourseEnrollments

course_id | student_id | name | surname
44          11           aa     aaa
55          22           bb     bbb
66          11           aa     aaa   

但是,当我执行left连接时,出于某种原因我收到了'cannot convert float NaN to integer'错误。Innerright联接不会引发异常。我相信innerjoin在我的情况下也应该有效,对吗?然而,我也很好奇为什么我在leftjoin中收到这个错误。下面是我的代码:

Students = Students.dropna(subset=['student_id'])
CourseEnrollments = CourseEnrollments.dropna(subset=['student_id'])
CourseEnrollments.merge(Students, how='left', left_on='student_id', right_on='student_id'

有人有什么想法吗?你知道吗


Tags: 数据namerightid错误surnameleftstudent