在日期列上的左合并在熊猫中表现不佳

时间:2019-04-21 08:06:23

标签: python pandas

我有两个数据框,如下所示:

DateTime = pd.date_range('2011-11-23T09:00:00', periods=39774, freq='30T')
Emptydf = pd.DataFrame({'DateTime':DateTime})

因此大小将为(39774, 1) 我正在从csv文件中读取第二个数据帧,该文件具有某些日期的销售信息,其大小和数据结构如图所示

df1.shape   
(38375, 2)

df1.dtypes 

DateTime              datetime64[ns]
Sale                  float32
dtype: object

当我执行以下代码时:

df2=pd.merge(Emptydf,df1,how='left',on='DateTime')

我给出一个奇怪的结果。根据文档,df2的大小应为Emptydf,但大小为:df2.shape (39800, 2) 有人可以告诉我我做错了吗? (两个数据帧中的DateTime均为数据类型)

1 个答案:

答案 0 :(得分:2)

尝试删除df1中的DateTime duplicates

为此,您可以使用:

df1.drop_duplicates(subset='DateTime', keep='first', inplace=True)