计算两个日期之间的完整月数?
Calculating the amount of full months between two dates?
时间序列的第一个和最后一个日期如下:
firstday = transactions["Date"].head(1)
firstday
lastday = transactions["Date"].tail(1)
lastday
Dateindex
2017-12-30 2017-12-30
Name: Date, dtype: datetime64[ns]
Dateindex
2018-12-31 2018-12-31
Name: Date, dtype: datetime64[ns]
我想要以下两样东西:
1) 获取第一天和最后一天为“2017-12-30”和“2018-12-31”(字符串),而不是 dtype('<M8[ns]')
2) 计算这些日期之间的 整月数 (正确的输出应该是 12 个月)
有什么想法可以实现这些吗?谢谢。
Select 第一个和最后一个值 Series.iat
:
firstday = transactions["Date"].iat[0]
lastday = transactions["Date"].iat[-1]
替代方法是使用 Index.get_loc
for position for column Date
with DataFrame.iat
:
firstday = transactions.iat[0, transactions.columns.get_loc('Date')]
lastday = transactions.iat[-1, transactions.columns.get_loc('Date')]
print (firstday)
2017-12-30 00:00:00
print (lastday)
2018-12-31 00:00:00
对于差值,将时间戳转换为月份 Timestamp.to_period
并减去:
diff = lastday.to_period('m') - firstday.to_period('m')
print (diff)
12
这是给你的信息
firstdayStr = str(firstday[0])
lastdayStr = str(lastday[0])
months = (lastday[0].year - firstday[0].year) * 12 + lastday[0].month - firstday[0].month
输出
2017-12-30 00:00:00
2018-12-31 00:00:00
12
时间序列的第一个和最后一个日期如下:
firstday = transactions["Date"].head(1)
firstday
lastday = transactions["Date"].tail(1)
lastday
Dateindex
2017-12-30 2017-12-30
Name: Date, dtype: datetime64[ns]
Dateindex
2018-12-31 2018-12-31
Name: Date, dtype: datetime64[ns]
我想要以下两样东西:
1) 获取第一天和最后一天为“2017-12-30”和“2018-12-31”(字符串),而不是 dtype('<M8[ns]')
2) 计算这些日期之间的 整月数 (正确的输出应该是 12 个月)
有什么想法可以实现这些吗?谢谢。
Select 第一个和最后一个值 Series.iat
:
firstday = transactions["Date"].iat[0]
lastday = transactions["Date"].iat[-1]
替代方法是使用 Index.get_loc
for position for column Date
with DataFrame.iat
:
firstday = transactions.iat[0, transactions.columns.get_loc('Date')]
lastday = transactions.iat[-1, transactions.columns.get_loc('Date')]
print (firstday)
2017-12-30 00:00:00
print (lastday)
2018-12-31 00:00:00
对于差值,将时间戳转换为月份 Timestamp.to_period
并减去:
diff = lastday.to_period('m') - firstday.to_period('m')
print (diff)
12
这是给你的信息
firstdayStr = str(firstday[0])
lastdayStr = str(lastday[0])
months = (lastday[0].year - firstday[0].year) * 12 + lastday[0].month - firstday[0].month
输出
2017-12-30 00:00:00
2018-12-31 00:00:00
12