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")
进行计算,但我希望能有更优雅的解决方案。
答案 0 :(得分:1)
作为my answer对previous 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 以获取不同格式的详细说明。