如何计算两个给定日期之间的天数

时间:2016-02-20 20:50:36

标签: python python-2.7 csv datetime

import csv

f = csv.reader(open('lmt.csv', 'r'))         # open input file for reading
Date, Open, Hihh, mLow, Close, Volume = zip(*f)    # split it into separate columns

现在,我想从Date列中选择两个日期,并计算它们之间的天数。 可悲的是,因为它们是从.csv文件中检索出来的,所以它们位于"' \ x; \ xef \ xbb \ xbfDate'"格式。

因此,当我尝试使用datetime模块时,它无法正常工作。

我能想到的一件事就是通过=DATEDIF(A2, B2, "d")进行计算,但我希望能有更优雅的解决方案。

1 个答案:

答案 0 :(得分:1)

作为my answerprevious questions之一的跟进(其中一个也找到了数据文件的链接),以下内容可以正常使用。以下代码将计算df['Date'][0](' 17-Feb-16')和df['Date'][10](' 2-Feb-16')之间的天数。您收到的输出是:

  

差异是15天。

以下是包含几个内联注释的代码:

import pandas as pd
from datetime import datetime

df = pd.read_csv('lmt.csv')

# get rid of the format issue
df.rename(columns={df.columns[0]: 'Date' }, inplace=True)

# define your format in the Date column
date_format = '%d-%b-%y'

# select the first date
date1 = datetime.strptime(df['Date'][0], date_format)

# select the second date
date2 = datetime.strptime(df['Date'][10], date_format)

# calculate the difference between the dates
diffDates = date1 - date2

# print results in days
print 'The difference are ' + str(diffDates.days) + ' days.'

如果您希望输出不是以天为单位,而是以小时为单位,则可以检查this post

修改

对于您需要的新文件:

date_format = '%Y-%m-%d'

然后它工作得很好。请查看this link 以获取不同格式的详细说明。