[英]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)
index[0].to_pydatetime()
见这里: https : //www.geeksforgeeks.org/python-pandas-datetimeindex-to_pydatetime/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.