当我尝试合并两个数据框时,它将返回一个空的DF。但是,两个联接列之间肯定有共同的元素。
我已经尝试过将列转换为相同的dtype。仍然有一个空的数据框。如果我下载CSV并在Microsoft Excel或R中执行此操作,则会收到DF退回。
# This column has strings and numbers, so cannot convert to int.
hierarchy_df['TargetSegmentNo'] = hierarchy_df.TargetSegmentNo.astype(str)
# target_match is a list I generated, it looks like ['4067', '4068', ...]
adhoc_df['target_match'] = target_match
adhoc_df['target_match'] = adhoc_df.target_match.astype(str)
> print(list(adhoc_df['target_match'])[0])
> print(type(list(adhoc_df['target_match'])[0]))
> print(adhoc_df.target_match.dtype)
> print(type(list(hierarchy_df['TargetSegmentNo'])[0]))
> print(hierarchy_df.TargetSegmentNo.dtype)
<class 'str'>
object
<class 'str'>
object
我可以看到列类型匹配,并且两者的元素都是字符串。我可以手动看到adhoc_df ['target_match']的元素在hierarchy_df ['TargetSegmentNo']中。但是,当我进行检查时,它返回False。
> print(list(adhoc_df['target_match'])[0] in list(hierarchy_df['TargetSegmentNo']))
> False
这很奇怪,因为它肯定在那里。因此,当我尝试合并时: fin = adhoc_df.merge(hierarchy_df,left_on ='target_match',right_on ='TargetSegmentNo',how ='inner')
我得到一个空的DF。我在这里想念东西吗?