熊猫在成功合并后返回了空的DF

时间:2018-12-30 04:04:22

标签: python python-3.x pandas

当我尝试合并两个数据框时,它将返回一个空的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。我在这里想念东西吗?

0 个答案:

没有答案