使用merge连接DataFrame时出现大量空值

问题再现

merge具有连接的功能,左连接更是在数据处理中最常用的连接方式。笔者在使用merge方法连接两个DataFrame数据时,出现了大量空值的情况:

              film  userid  score 上映时间 闭映时间 出品公司   导演   主角 影片类型  票房/万  评分
0       《分手再说我爱你》     1344    9.0  NaN  NaN  NaN  NaN  NaN  NaN   NaN NaN
1     《前任2:备胎反击战》     1240    5.7  NaN  NaN  NaN  NaN  NaN  NaN   NaN NaN
2           《简单爱》     1102    8.6  NaN  NaN  NaN  NaN  NaN  NaN   NaN NaN
3           《闯入者》     1191    8.6  NaN  NaN  NaN  NaN  NaN  NaN   NaN NaN
4          《怦然星动》     1488    8.8  NaN  NaN  NaN  NaN  NaN  NaN   NaN NaN
5            《紫霞》     1161    5.7  NaN  NaN  NaN  NaN  NaN  NaN   NaN NaN
6          《天将雄师》     1205    3.8  NaN  NaN  NaN  NaN  NaN  NaN   NaN NaN
7         《坏蛋必须死》     1444    9.2  NaN  NaN  NaN  NaN  NaN  NaN   NaN NaN
8          《探灵档案》     1191    8.9  NaN  NaN  NaN  NaN  NaN  NaN   NaN NaN
9           《少年班》     1264    4.9  NaN  NaN  NaN  NaN  NaN  NaN   NaN NaN

问题探究

这是为什么呢?原因是通常我们的dataframe的数据都是从csv文件或者xls文件读取过来的,在excel中打开对应b那些的数据看起来是一样的,但是使用pandas读取的时候,可能发现不同csv文件或者xls文件的同一列的数据相同的数据具有整型和浮点型的区别,这样导致在连接的时候,无法对数据进行连接。

处理方法

因此,在使用merge进行连接前,必须对连接的关键字进行字符化或者整型化的调整,使连接的关键字值和类型都相同。

参考文档

  • Pandas:merge函数使用注意事项(pandas的merge函数造成大量错误的空值)
  • Pandas Merge后出现大量NaN值

你可能感兴趣的:(大数据和云计算)