为什么pandas.merge()会生成其他行?

时间:2019-06-12 12:38:48

标签: python python-3.x pandas

我有5个要统一的数据集。事实是,其中某些数据可能丢失或可能不同步(时间戳偏移)。我考虑过合并所有“时间戳记”列以获得一个公共的“时间戳记”列。

  temp_1 = pd.merge(a["Timestamp"],a1["Timestamp"],how='outer',on='Timestamp').sort_values(by="Timestamp").reset_index(drop=True)
  temp_2 = pd.merge(a2["Timestamp"],a3["Timestamp"],how='outer',on='Timestamp').sort_values(by="Timestamp").reset_index(drop=True)
  temp_3 = pd.merge(temp_1["Timestamp"],temp_2["Timestamp"],how='outer',on='Timestamp').sort_values(by="Timestamp").reset_index(drop=True)
  temp_4 = pd.merge(temp_3["Timestamp"],a4["Timestamp"],how='outer',on='Timestamp').sort_values(by="Timestamp").reset_index(drop=True)

当我打印数据集的所有长度时,我看到长度已经改变。

print(len(a),len(a1),len(a2),len(a3),len(a4),len(temp_1),len(temp_2),len(temp_4))

52561 52561 52560 52561 52560 52573 52573 52742 

如果仅查看temp_1数据集,则行的增加可能表明Timestamp值不同,所以我检查是否与以下代码行相同。

(a['Timestamp']==a1['Timestamp']).all()

True

在这里我可以看到两列都是相同的。

这怎么可能?如果“时间戳”列相同,则合并应提供长度相同的数据框。

最好的问候, 伊帕。

0 个答案:

没有答案