pandas:如何将tzaware日期时间列写入s

2024-06-01 10:08:10 发布

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

我有一些数据帧,其中包含需要写入存储的时区感知日期时间列。然而,一旦我有任何丢失的值,写就失败了。我举了一个简单的例子:

pd.set_option('io.hdf.default_format','table')
mdstore = pd.HDFStore(storeFile, complevel=9, complib='blosc')
utcdate = pd.to_datetime('20000101', utc=True)
df1 = pd.DataFrame(columns=['UTCdatetime'], data=utcdate, index=pd.date_range('20140627', periods=2))
mdstore['/Test'] = df1

这很好,因为它没有丢失的值。如果我引入了缺失值,尽管我得到了两个不同错误中的一个。在

错误1:如果我添加另一列,但只填充了两行中的一行,则会收到一个错误:

^{pr2}$

错误2:如果我添加了一个填充了NA的新行,则会得到不同的错误:

df1.loc[pd.to_datetime('20140629'),'UTCdatetime'] = pd.NaT
print(df1)
mdstore['/Test'] = df1
                      UTCdatetime
2014-06-27  2000-01-01 00:00:00+00:00
2014-06-28  2000-01-01 00:00:00+00:00
2014-06-29                        NaN

TypeError: too many timezones in this block, create separate data columns

我希望能有一个解决办法,不需要用任意的日期来填充NaN's。我尝试了fillna与{}一起使用,但没有起到任何作用。谢谢!在

PS我也有一个问题,combinefirst和tz(pandas tzinfo lost by combine_first)-似乎没有关联,只是以防万一。在


Tags: columnsto数据testdatadatetime错误时间