繁体   English   中英

将pandas DataFrame与datetime列连接

[英]Concatenating pandas DataFrames with datetime columns

我正在尝试串联从SQL查询创建的两个DataFrame(称为firstData和lastData)。 但是,当我尝试将它们串联时,出现错误,提示TypeError: can't compare datetime.datetime to int 从此消息来看,我认为问题是与AUTHORIZED字段串联。 虚拟数据及其数据框如下所示。 关于如何解决这个问题有什么想法吗?

print firstData
  ORDER_ID    EMAIL             IP       AUTHORIZED  
0   1234567   dummy@dummy.net   x.x.x.x  2008-11-15 19:16:07   
1   8911234   dummy@dummy.com   x.x.x.x  2008-11-15 17:59:55   
2   4567833   dummy@dummy.com   x.x.x.x  2008-11-15 17:50:20   

     HOUR  DAY_OF_WEEK SHIPMENT_TYPE  ZIPS_MATCH     MERCH_SUBCAT     
0    19    7           Standard       1              Her Accessory      
1    17    7           Standard       1              Her Accessory      
2    17    7           Standard       1              Kid toy/clothes

print lastData   
  ORDER_ID  EMAIL              IP     AUTHORIZED 
3   1234567 dummy@dummy.net  x.x.x.x  2008-11-15 17:43:13 
4   8901234 dummy@dummy.com  x.x.x.x  2008-11-15 13:18:01    
5   4567890 dummy@dummy.com  x.x.x.x  2008-11-15 09:29:10   

   HOUR DAY_OF_WEEK  SHIPMENT_TYPE      ZIPS_MATCH    MERCH_SUBCAT
3  17    7           Standard           1             Bag   
4  13    7           Standard           1             Paperweight/boxes     
5  09    7           Standard           0             Candle   


concat(firstData, lastData)
   TypeError: can't compare datetime.datetime to int

您需要将listdicttupleDataFrameSeries对象的生成器DataFrameconcat 您现在正在执行的操作将引发TypeError因为lastData被作为axis参数传递(并且有很多行,例如axis == 0 ,将触发TypeError )。 像这样做:

In [31]: a
Out[31]:
   0        1                2        3           4         5
0  0  1234567  dummy@dummy.net  x.x.x.x  2008-11-15  19:16:07
1  1  8911234  dummy@dummy.com  x.x.x.x  2008-11-15  17:59:55
2  2  4567833  dummy@dummy.com  x.x.x.x  2008-11-15  17:50:20

In [32]: b
Out[32]:
   0        1                2        3           4         5
0  3  1234567  dummy@dummy.net  x.x.x.x  2008-11-15  17:43:13
1  4  8901234  dummy@dummy.com  x.x.x.x  2008-11-15  13:18:01
2  5  4567890  dummy@dummy.com  x.x.x.x  2008-11-15  09:29:10

In [33]: concat([a, b])
Out[33]:
   0        1                2        3           4         5
0  0  1234567  dummy@dummy.net  x.x.x.x  2008-11-15  19:16:07
1  1  8911234  dummy@dummy.com  x.x.x.x  2008-11-15  17:59:55
2  2  4567833  dummy@dummy.com  x.x.x.x  2008-11-15  17:50:20
0  3  1234567  dummy@dummy.net  x.x.x.x  2008-11-15  17:43:13
1  4  8901234  dummy@dummy.com  x.x.x.x  2008-11-15  13:18:01
2  5  4567890  dummy@dummy.com  x.x.x.x  2008-11-15  09:29:10

In [34]: concat([a, b], axis=1)
Out[34]:
   0        1                2        3           4         5  0        1  \
0  0  1234567  dummy@dummy.net  x.x.x.x  2008-11-15  19:16:07  3  1234567
1  1  8911234  dummy@dummy.com  x.x.x.x  2008-11-15  17:59:55  4  8901234
2  2  4567833  dummy@dummy.com  x.x.x.x  2008-11-15  17:50:20  5  4567890

                 2        3           4         5
0  dummy@dummy.net  x.x.x.x  2008-11-15  17:43:13
1  dummy@dummy.com  x.x.x.x  2008-11-15  13:18:01
2  dummy@dummy.com  x.x.x.x  2008-11-15  09:29:10

现在这会引发一个AssertionError ,因为提交36142334 (在v0.12.0版本中),因此您不再会收到此神秘错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM