簡體   English   中英

如何從 pandas DatetimeIndex 中提取並進一步測試日期列表?

[英]How can I extract and further test the list of dates from pandas DatetimeIndex?

這個問題實際上有兩個部分,因為我仍在學習。

date_list = pd.date_range(2019-09-24, 2019-09-26)

將返回 object

DatetimeIndex( ['2019-09-24', '2019-09-25'] , dtype='datetime64[ns]', freq='D')

但是,我只想要上面顯示的返回格式的列表。 我嘗試附加.tolist()但它隨后返回列表中的時間戳,例如。

時間戳('2019-09-24 00:00:00', freq='D')

然后我使用了 .date這似乎有效

print(date_list[0])

2019-09-24

這是最好的使用方法嗎?

然后我來測試它,我理解這個測試可能沒有必要但出於學習的目的:

def datetimeindex(dates):
    start = dates['from_date']
    end = dates['to_date']
    date_list = pd.date_range(start, end).date
    print(date_list[0])
    return date_list[0]


 def test_datetimeindex(self):
        dates = {"from_date": "2019-09-24",
                "to_date": "2019-09-27"}
        actual = datetimeindex(dates)
        expected = "2019-09-24"
        self.assertEqual(expected, actual)

我收到此錯誤:

AssertionError: '2019-09-24'.= datetime,date(2019, 9, 24)

為什么打印和退貨不一樣? 如果我將它傳遞給另一個方法,它實際上會傳遞什么,2019-09-24 或 datetime.date(2019, 9, 24)?

我不能斷言datetime.date(2019, 9, 24)因為它不是字符串,所以不知道該怎么做?

謝謝

編輯:這返回了我想要的。 這提醒我 print() 總是字符串,所以很有意義。

return str(date_list[0])

您可以使用此方法以字符串格式創建日期列表

[i.strftime("%Y-%m-%d") for i in pd.date_range(start=start_date, end=end_date)]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM