日期时间转换问题 pandas
Datetime conversion issue pandas
我在 python3 上有一个 pandas 数据框,第一列的类型为 "datetime64[ns]"。
这是我的代码片段:
import pandas as pd
import numpy as np
from pandas.tseries.offsets import BDay
import datetime as dt
d = {'Date': [np.datetime64('2017-12-31','ns'), np.datetime64('2018-01-01','ns'), np.datetime64('2018-01-02','ns'), np.datetime64('2018-01-03','ns')],
'Prices': [9.62, 9.5, 9.73, 9.45]}
analytics = pd.DataFrame(data=d)
analytics['Date'] = pd.to_datetime(analytics['Date'], format='%Y-%m-%d')
Eyear = 2018
Emonth = 1
Eday = 3
###days
#last day
last = dt.datetime(Eyear, Emonth, Eday)
#1y
dtvar = dt.datetime(Eyear-1, Emonth, Eday)
yr1 = dtvar - BDay(1) if (dtvar.weekday() == 5 or dtvar.weekday() == 6) else dtvar
yr1_plus1 = yr1 + BDay(1)
yr1ct = len(analytics[yr1_plus1:last])
print(yr1ct)
我一直遇到这个错误:
TypeError:无法使用 class 'pandas._libs.tslib.Timestamp'[= 的这些索引器 [2017-01-02 00:00:00] 在 class 'pandas.core.indexes.range.RangeIndex' 上进行切片索引12=]
我正在尝试查找一年前的第一个工作日,并查找这两个日期之间的工作日数。
我认为问题可能在于 DataFrame 具有一种时间格式,而对于进一步操作最重要的变量 "last" 和 "dtvar" 属于 datetime.datetime ,我需要使用 .weekday() 公式。
在这种情况下处理日期的最佳方法是什么?
因为我在 pandas、numpy 和 datetime 中看到了数千种不同的日期类型。我是 python 的新手,无论我怎么努力,我都找不到出路。
非常感谢您的帮助,
数据框未被 Date
列索引。切片前需要 set_index。
>>> analytics.set_index("Date")[yr1_plus1:last]
我在 python3 上有一个 pandas 数据框,第一列的类型为 "datetime64[ns]"。 这是我的代码片段:
import pandas as pd
import numpy as np
from pandas.tseries.offsets import BDay
import datetime as dt
d = {'Date': [np.datetime64('2017-12-31','ns'), np.datetime64('2018-01-01','ns'), np.datetime64('2018-01-02','ns'), np.datetime64('2018-01-03','ns')],
'Prices': [9.62, 9.5, 9.73, 9.45]}
analytics = pd.DataFrame(data=d)
analytics['Date'] = pd.to_datetime(analytics['Date'], format='%Y-%m-%d')
Eyear = 2018
Emonth = 1
Eday = 3
###days
#last day
last = dt.datetime(Eyear, Emonth, Eday)
#1y
dtvar = dt.datetime(Eyear-1, Emonth, Eday)
yr1 = dtvar - BDay(1) if (dtvar.weekday() == 5 or dtvar.weekday() == 6) else dtvar
yr1_plus1 = yr1 + BDay(1)
yr1ct = len(analytics[yr1_plus1:last])
print(yr1ct)
我一直遇到这个错误:
TypeError:无法使用 class 'pandas._libs.tslib.Timestamp'[= 的这些索引器 [2017-01-02 00:00:00] 在 class 'pandas.core.indexes.range.RangeIndex' 上进行切片索引12=]
我正在尝试查找一年前的第一个工作日,并查找这两个日期之间的工作日数。
我认为问题可能在于 DataFrame 具有一种时间格式,而对于进一步操作最重要的变量 "last" 和 "dtvar" 属于 datetime.datetime ,我需要使用 .weekday() 公式。 在这种情况下处理日期的最佳方法是什么? 因为我在 pandas、numpy 和 datetime 中看到了数千种不同的日期类型。我是 python 的新手,无论我怎么努力,我都找不到出路。
非常感谢您的帮助,
数据框未被 Date
列索引。切片前需要 set_index。
>>> analytics.set_index("Date")[yr1_plus1:last]