我有以下 Dataframe :
DF1:
col1 | col2 | col3
1 2 3
4 5 6
40 50 60
当我打印这些列的数据类型时,它们都是对象。2现在,我想添加新的行(作为 Dataframe 输入),所以我连接这些 Dataframe
DF2:
col1 | col2 | col3
40 50 60
当我打印第二个 Dataframe 的数据类型时,所有列的Int64,所以我将第二个 Dataframe 转换为对象类型(因为第二个 Dataframe 也可能有'str' dtype),所以我做了以下操作:
DF2 = DF2.astype(DF1.dtypes.to_dict())
DF1= pd.concat([DF1, DF2])
然后,我将这两个 Dataframe 连接起来,之后,当我尝试删除重复项时,不会删除重复记录
DF1 = DF1.drop_duplicates(
subset=DF1.columns.to_list(), keep='last')
我当前得到的结果:
DF1:
col1 | col2 | col3
1 2 3
4 5 6
40 50 60
40 50 60
有人能帮我做错了什么吗,
如果我将两个 Dataframe 都转换为str dtype,它会起作用,但这不是我寻找的通用解决方案
1条答案
按热度按时间ryevplcw1#
您需要将两个数据框中的所有列转换为通用数据类型,然后再将它们连接起来。例如: