gpt4 book ai didi

python - 忽略 Pandas Dataframe 中的时间偏移

转载 作者:太空宇宙 更新时间:2023-11-03 18:32:11 25 4
gpt4 key购买 nike

我有一个由时间(偶尔还有 NaN)组成的 Pandas DataFrame。我想删除时区偏移。有什么想法可以做到这一点吗?

d = pd.DataFrame({'t':['2014-01-25 07:53:59-05:00', '2013-12-09 20:04:29+01:00', np.NaN]})
print d
a = pd.to_datetime(d.t)
a

输出:

                          t
0 2014-01-25 07:53:59-05:00
1 2013-12-09 20:04:29+01:00
2 NaN

0 2014-01-25 12:53:59
1 2013-12-09 19:04:29
2 NaT

Name: t, dtype: datetime64[ns]

在转换to_datetime中,时间被转换为UTC。这是不可取的。知道如何防止这种转换发生吗?我更喜欢在 Pandas 中执行此操作。

期望的输出:

0   2014-01-25 07:53:59
1 2013-12-09 20:04:29
2 NaT

最佳答案

您可以删除 NaN,然后​​去除偏移量,然后进行转换:

In [19]: 
# create the dataframe
d = pd.DataFrame({'t':['2014-01-25 07:53:59-05:00', '2013-12-09 20:04:29+01:00', np.NaN]})

d

Out[19]:

t
0 2014-01-25 07:53:59-05:00
1 2013-12-09 20:04:29+01:00
2 NaN

[3 rows x 1 columns]

In [20]:
# need to drop the NaN in order for the conversion to work
d.dropna(inplace=True)
# strip the offset
d.t = d.t.apply(lambda x : x[:-6])

d
Out[20]:

t
0 2014-01-25 07:53:59
1 2013-12-09 20:04:29

[2 rows x 1 columns]

In [21]:
# now convert to datetime
d.t = pd.to_datetime(d.t)

d

Out[21]:

t
0 2014-01-25 07:53:59
1 2013-12-09 20:04:29

[2 rows x 1 columns]

In [22]:

d.dtypes

Out[22]:

t datetime64[ns]
dtype: object

正如 @DSM 指出的,您可以一步完成此操作(这也可以处理 NaN):

d.t = pd.to_datetime(d.t.str[:-6])

也可以

关于python - 忽略 Pandas Dataframe 中的时间偏移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22233303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com