以下是数据帧列的外观。
df1 ='设备编号','日期',....<<< 10其他列>> 3500条记录
df2 ='设备编号','日期',....<<< 9其他列>> 14,000条记录
在每个数据框中,既没有“设备编号”,也没有'日期'很独特。但是,它们的组合对于识别行是唯一的。
我正在尝试形成一个新的数据框,它匹配来自df1和df2的行,其中设备编号和日期相等,并且具有来自这些df1和df2的所有列。我正在尝试的pandas命令是
df3=pd.merge(df1, df2, how='inner', on=['device number', 'date'])
然而,df3给了我一个形状的数据帧(14,000,21)。列号是有意义的,但内连接如何比任何左数据帧都有更多的行?这是否意味着我对内联系的理解存在缺陷?另外,我怎样才能达到我描述的结果?
答案 0 :(得分:1)
我只能看到这种情况发生...特别是如果df2
中的列组合不是<{1}}中的14,000与df2
中的记录数相同/ strong>独特。
您可以使用以下内容验证它们不是唯一的(True
如果唯一)
df2.duplicated(['device number', 'date']).sum() == 0
或者
df.set_index(['device number', 'date']).index.is_unique