11

各要素が'yyyymmdd': などの書式文字列である日付範囲のリストが必要です['20130226','20130227','20130228','20130301','20130302']

パンダを使用してそうすることができます:

>>> pandas.date_range('20130226','20130302')
<class 'pandas.tseries.index.DatetimeIndex'>
[2013-02-26 00:00:00, ..., 2013-03-02 00:00:00]
Length: 5, Freq: D, Timezone: None

しかし、それは DatetimeIndex であり、追加のフォーマット変換を行う必要があります。

4

4 に答える 4

4

簡単でクリーン: pandas の date_range と strftime を次のように直接使用します。

pd.date_range(start='20130226',end='20130302',freq='D').strftime('%Y%m%d')

結果:

Index(['20130226', '20130227', '20130228', '20130301', '20130302'], dtype='object')
于 2020-01-09T19:16:04.960 に答える
1

Just a のdaterange場合pandas、実際に を使用して日付を再フォーマットする必要がある場合、やり過ぎですdatetime。次のソリューションは、単にdatetime目的を果たすために使用します

import datetime
def date_range(start_dt, end_dt = None):
    start_dt = datetime.datetime.strptime(start_dt, "%Y%m%d")
    if end_dt: end_dt = datetime.datetime.strptime(end_dt, "%Y%m%d")
    while start_dt <= end_dt:
        yield start_dt.strftime("%Y%m%d")
        start_dt += datetime.timedelta(days=1)


[e for e in date_range('20130226','20130302')]
['20130226', '20130227', '20130228', '20130301', '20130302']
于 2013-09-08T13:51:49.400 に答える