【发布时间】:2021-05-12 05:43:55
【问题描述】:
我无法弄清楚如何获得 2 个给定日期之间的天数差异。我在谷歌和几个论坛中搜索答案并尝试应用几个代码,但它们都给了我一个 TypeError。
spx_test = pd.read_csv('5_12_2019 S&P500 test1.csv')
spx_test.drop(['optionid','index_flag','issuer','exercise_style'], axis= 1, inplace = True)
spx_test
然后我改变了日期的格式,想计算差['days']。
spx_test["date"] = pd.to_datetime(spx_test["date"]).dt.strftime('%Y-%m-%d')
spx_test["exdate"] = pd.to_datetime(spx_test["exdate"]).dt.strftime('%Y-%m-%d')
pd.to_datetime(spx_test['date'])
pd.to_datetime(spx_test['exdate'])
spx_test['days'] = spx_test['exdate'] - spx_test['date']
它告诉我“-: 'str' 和 'str' 不支持的操作数类型”,如果 2 列仍然是字符串,这对我来说很有意义,但我认为 pd.to_datetime 需要我的 Ymd 字符串并转它变成我可以使用运算符的日期。
这里是python新手,所以让我知道我没有看到什么。谢谢!
【问题讨论】:
-
您实际上还没有将日期时间对象分配给列,您只是调用了它。将
pd.to_datetime(spx_test['date'])更改为spx_test['date'] = pd.to_datetime(spx_test['date'])更好,删除dt.strftime方法没有意义创建日期然后将其转换回字符串? -
我正在输入类似的内容,所以他们说的是 ^^^ :)。另外你会想要
spx_test['days'] = (spx_test['exdate'] - spx_test['date']).dt.days。 -
谢谢你们,Manakin 和 Rick M,特别是 .dt.days 方法,它给了我整数天数。真的好用!问题解决了。
标签: python pandas dataframe date time