[英]Pandas date_range and leap years
運行此代碼時:
a = pd.date_range("1959-12-09 00:00:00", "2013-12-09 12:00:00", freq = "365D6H")
weekDays = [dt.datetime.weekday(d) for d in a]
df = pd.DataFrame({"Date": a, "Jour": weekDays})
df.head(6)
我越來越:
0 1959-12-09 00:00:00 2
1 1960-12-08 06:00:00 3 *
2 1961-12-08 12:00:00 4
3 1962-12-08 18:00:00 5
4 1963-12-09 00:00:00 0
5 1964-12-08 06:00:00 1 *
6 1965-12-08 12:00:00 2
閏年問題。 盡管有閏年,我怎么能在日期之間只有一個日歷年呢?
您可以使用列表date_range
來創建它,而不是使用date_range
:
In [11]: pd.to_datetime(["%s-12-09 %s:00:00" % (y, (6 * h) % 24)
for h, y in enumerate(xrange(1959, 2014))])
Out[11]:
<class 'pandas.tseries.index.DatetimeIndex'>
[1959-12-09 00:00:00, ..., 2013-12-09 12:00:00]
Length: 55, Freq: None, Timezone: None
頻率為無,因為這不是常規頻率...如果您嘗試添加一個numpy年和一個numpy小時,您將看到:
In [21]: np.timedelta64(1, 'Y') + np.timedelta64(6, 'h')
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-21-6a7f3e5b3315> in <module>()
----> 1 np.timedelta64(1, 'Y') + np.timedelta64(6, 'h')
TypeError: Cannot get a common metadata divisor for NumPy datetime metadata [Y] and [h] because they have incompatible nonlinear base time units
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.