【发布时间】:2021-02-18 16:05:42
【问题描述】:
当合并 2 个数据集时,我在每个类别的第二个原始数据中得到 NAN。
这是一个用来说明问题的玩具数据集:
df1=pd.DataFrame({'Num':[1,1,2,3,3],
'date':['1995-09-01','1995-10-04','1995-11-07','1995-11-10','1995-11-25'],
'A':[42.5,40,38,40,28],
'B': [13.3,12.3,12.2,11,10]})
df2=pd.DataFrame({'Num':[1,1,1,1,2,2,3,3,3,3],
'date':['1995-09-01','1995-09-02','1995-10-03','1995-10-04','1995-10-05','1995-11-07','1995-11-08','1995-11-09','1995-11-10','1995-11-25'],
'C':[42.5,39.5,37.2,40,41,38,38.2,39.7,40,28],
'D': [13.3,12.8,12.1,12.3,13.3,12.2,12.4,12.8,11,10]})
运行以下代码后:
data = pd.merge(df1, df2, how='left', left_on=['Num','date'], right_on = ['Num','date'])
但是,使用我的真实数据集,我得到:
我检查了数据类型并且它们匹配,并且没有空值或 nans 出现在键上。 Num 格式为 int64,日期格式为 datetime64
【问题讨论】:
-
在您的原始数据(不是玩具数据集)中,您能否检查匹配列(df1.dtypes 和 df2.dtypes)上的 dtypes 是否相同
-
@PaulBrennan 原始数据中的两个键具有相同的格式,int64 (num) 和
用于日期