这可能是一个很容易回答的问题,但是以某种方式我没有得到解决方案。问题是,我有来自三个测量点的数据。其中两个使用dtype:datetime64 [ns,UTC],但最后一个使用dtype:datetime64 [ns]。
我遇到了很多答案,但到目前为止,对我没有任何帮助,但这也许只是我不知道如何与熊猫打交道的问题。因此,对于大熊猫,我想将数据与时间戳合并。但是由于下面的消息带有不同的时间戳,所以熊猫不允许我这样做:
ValueError: You are trying to merge on datetime64[ns, UTC] and datetime64[ns] columns. If you wish to proceed you should use pd.concat
我必须键入什么才能正确转换我的值?我尝试了很多像:
pd.to_datetime(df.time, unit='ns').dt.tz_localize('UTC')
要么
pd.to_datetime(df, unit='ns').dt.tz_localize('UTC').dt.tz_convert('US/Eastern')
但是到目前为止,对我来说没有任何帮助...非常感谢您的帮助。
您也可以使用all_timezones
从pytz
。
import pandas as pd
from pytz import all_timezones
print(all_timezones[-5:])
您可以看到最后5个:
['UTC', 'Universal', 'W-SU', 'WET', 'Zulu']
我将创建一个示例数据框:
date = pd.Series(pd.date_range('9/1/2020', periods=10, freq='D'))
结果:
0 2020-09-01
1 2020-09-02
2 2020-09-03
3 2020-09-04
4 2020-09-05
5 2020-09-06
6 2020-09-07
7 2020-09-08
8 2020-09-09
9 2020-09-10
dtype: datetime64[ns]
您可以更改它,例如:
date_with_utc = date.dt.tz_localize('Europe/London')
print(date_with_utc)
结果:
0 2020-09-01 00:00:00+01:00
1 2020-09-02 00:00:00+01:00
2 2020-09-03 00:00:00+01:00
3 2020-09-04 00:00:00+01:00
4 2020-09-05 00:00:00+01:00
5 2020-09-06 00:00:00+01:00
6 2020-09-07 00:00:00+01:00
7 2020-09-08 00:00:00+01:00
8 2020-09-09 00:00:00+01:00
9 2020-09-10 00:00:00+01:00
dtype: datetime64[ns, Europe/London]
所有代码:
import pandas as pd
from pytz import all_timezones
date = pd.Series(pd.date_range('9/1/2020', periods=10, freq='D'))
date_with_utc = date.dt.tz_localize('Europe/London')
print(date_with_utc)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句