pandas tzinfo被combine_first丢失了

时间:2014-07-01 05:10:21

标签: python pandas

我意识到我的一些数据帧缺少tzinfo,并确定combine_first正在删除它。我举了一个简短的例子:

df1 = pd.DataFrame(columns=['UTCdatetime','abc'],
                  data=pd.to_datetime('20100101 01:01').tz_localize('UTC'),
                  index=pd.date_range('20140627', periods=1))
print(df1)
df2 = pd.DataFrame(columns=['UTCdatetime','xyz'],
                  data=pd.to_datetime('20121212 12:12').tz_localize('UTC'),
                  index=pd.date_range('20140628', periods=1))
print(df2)
df1 = df2[['UTCdatetime']].combine_first(df1)
print(df1)

输出:

                          UTCdatetime                        abc
2014-06-27  2010-01-01 01:01:00+00:00  2010-01-01 01:01:00+00:00
                          UTCdatetime                        xyz
2014-06-28  2012-12-12 12:12:00+00:00  2012-12-12 12:12:00+00:00
                   UTCdatetime                        abc
2014-06-27 2010-01-01 01:01:00  2010-01-01 01:01:00+00:00
2014-06-28 2012-12-12 12:12:00                        NaN

在combine_first之前,日期时间都显示UTC。但是,一旦我执行combine_first,就会丢失+00:00(例如UTC),尽管时间本身都很好。

我使用pandas 0.14.0。有没有办法避免丢失tzinfo?

在相关的说明中,是否有一种简单的方法可以通过编程方式判断tzinfo是否存在?如果tz_localize已经存在,则执行tz_localize会引发异常,如果不存在,则tz_convert会引发异常。谢谢!

0 个答案:

没有答案