簡體   English   中英

在 Pandas 中將 DatetimeIndex 轉換為 datetime.date

[英]Convert DatetimeIndex to datetime.date in pandas

我試圖從 Pandas 的列中減去今天的日期以獲得天數(作為整數)。

我首先使用pd.to_datetime轉換了列中的日期(例如:27-Sep-2018)。

df['Date'] - datetime.datetime.now().date()

我收到以下錯誤:

類型錯誤:不支持的操作數類型 -:'DatetimeIndex' 和 'datetime.date'

我想弄清楚如何讓它工作,還將天數轉換為整數?

我認為問題可能是由於您從日期對象(不包括時間)中減去了熊貓的datetime對象。 您可以嘗試以下方法:

df['Date_2'] = pd.to_datetime(df['Date']).dt.date

現在進行計算: df['Date_2'] - datetime.datetime.now().date()應該可以工作。

讓我們使用熊貓Timestamp.now()

s = pd.Series('27-Sep-2018')

s = pd.to_datetime(s)

(s - pd.Timestamp.now()).dt.days

輸出:

0     15
dtype: int64

注意:該錯誤說明您無法從對象“ datetime.date”中減去對象類型DatetimeIndex。 因此,使用pandas Timestamp創建與DateTimeIndex相同的對象類型。

嘗試使用datetime.strptime()函數進行轉換。

在您的ex ='2018年9月27日'中,它看起來像這樣:

from datetime import datetime
ex='27-Sep-2018'
date = datetime.strptime(ex, '%d-%b-%Y')

接着:

date.days 

將存儲結果(類型-int)

暫無
暫無

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

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