2016-11-11 47 views
0

我有一个熊猫数据帧:大熊猫过滤器日期时间:类型错误:无法比拟的偏移天真和偏移感知日期时间

name my_timestamp 
------------------------------------------ 
0 a1  2016-07-28 09:27:07.536963-07:00 
1 a2  2016-07-28 09:27:07.536963-07:00 
2 a3  2016-08-15 13:05:54.924185-07:00 
3 a4  2016-08-30 04:04:18.971667-07:00 
4 a5  2016-03-22 14:36:22.999825-07:00 
5 a6  2016-08-30 04:04:18.971667-07:00 

我想在我的熊猫数据帧过滤掉一些行象下面这样:

import datetime 
my_df[my_df.my_timestamp > datetime.datetime(2016, 7, 1)] 

,但得到以下错误:

TypeErrorTraceback (most recent call last) 
<ipython-input-21-35be746f191d> in <module>() 
     1 import datetime 
----> 2 my_df[my_df.my_timestamp > datetime.datetime(2016, 7, 1)] 

/usr/local/lib/python2.7/dist-packages/pandas/core/ops.pyc in wrapper(self, other, axis) 
    761     other = np.asarray(other) 
    762 
--> 763    res = na_op(values, other) 
    764    if isscalar(res): 
    765     raise TypeError('Could not compare %s type with Series' % 

/usr/local/lib/python2.7/dist-packages/pandas/core/ops.pyc in na_op(x, y) 
    681      result = lib.vec_compare(x, y, op) 
    682    else: 
--> 683     result = lib.scalar_compare(x, y, op) 
    684   else: 
    685 

pandas/lib.pyx in pandas.lib.scalar_compare (pandas/lib.c:14261)() 

TypeError: can't compare offset-naive and offset-aware date times 

这似乎是时区的问题。这里忽略时区的最好方法是什么?谢谢!

+0

您可以为您的数据帧的样本? (以及它是如何构建的) –

+0

my_df [my_df.my_timestamp> pd.to_datetime(“2016-07-01”)] – piRSquared

+0

@ DennisGolomazov:添加了示例数据框。谢谢! – Edamame

回答

1

假设在数据帧的所有时间戳都在同一时区:

tz_info = my_df.iloc[0].my_timestamp.tzinfo 
my_df[my_df.my_timestamp > datetime.datetime(2016, 7, 1, tzinfo=tz_info)] 
+0

运作良好。谢谢! – Edamame

+0

@Edamame很高兴它有帮助! –