将pandas数据帧与datetime列连接起来

2024-04-19 04:36:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试连接从SQL查询创建的两个数据帧(称为firstData和lastData)。但是,当我尝试连接它们时,我得到一个错误,它说TypeError: can't compare datetime.datetime to int。从这条消息来看,我认为问题是与授权字段的连接。下面是数据帧的虚拟数据。你有什么想法吗?在

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

Tags: to数据comiddatetimeordercanstandard
1条回答
网友
1楼 · 发布于 2024-04-19 04:36:01

您需要将listdicttuple或{}或Series对象的生成器传递给concat。您现在所做的将抛出一个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,因为commit 36142334(在v0.12.0版本中),这样您就不会再遇到这个神秘的错误了。在

相关问题 更多 >