【发布时间】:2016-12-06 17:29:03
【问题描述】:
在将列表(日期范围)中的日期附加到 csv 中的一组数据时需要帮助。
我可以创建一个日期范围。然后使用 csv reader 浏览 csv。但是我被困在如何从列表中附加一个日期并一直重复到最后一个日期(请参阅下面的所需输出)。
CSV 数据
AsofDate,Account Number,Security ID,Market Value,Market Value Currency,Security Type Code,Weight
08/01/16,Account 1,123,2000,USD,E,5
08/01/16,Account 1,111,2000,USD,FC,5
08/01/16,Account 2,123,2000,USD,E,5
08/01/16,Account 2,111,2000,USD,FC,5
08/01/16,Account 3,123,2000,USD,E,5
08/01/16,Account 3,111,2000,USD,FC,5
Python 代码:
import sys
import datetime
start = datetime.datetime.strptime("08/01/2016", "%m/%d/%Y")
end = datetime.datetime.strptime("08/31/2016", "%m/%d/%Y")
date_generated = [start + datetime.timedelta(days=x) for x in range(0, (end-start).days)]
date_list = []
for date in date_generated:
date_list.append(date.strftime("%m/%d/%Y"));
# print date.strftime("%m/%d/%Y")
print date_list
with open('test.csv', 'rb') as f:
reader = csv.DictReader(f)
for row in reader:
print row
期望的输出
AsofDate,Account Number,Security ID,Market Value,Market Value Currency,Security Type Code,Weight
08/01/16,Account 1,123,2000,USD,E,5
08/01/16,Account 1,111,2000,USD,FC,5
08/01/16,Account 2,123,2000,USD,E,5
08/01/16,Account 2,111,2000,USD,FC,5
08/01/16,Account 3,123,2000,USD,E,5
08/01/16,Account 3,111,2000,USD,FC,5
08/02/16,Account 1,123,2000,USD,E,5
08/02/16,Account 1,111,2000,USD,FC,5
08/02/16,Account 2,123,2000,USD,E,5
08/02/16,Account 2,111,2000,USD,FC,5
08/02/16,Account 3,123,2000,USD,E,5
08/02/16,Account 3,111,2000,USD,FC,5
...
08/31/16,Account 1,123,2000,USD,E,5
08/31/16,Account 1,111,2000,USD,FC,5
08/31/16,Account 2,123,2000,USD,E,5
08/31/16,Account 2,111,2000,USD,FC,5
08/31/16,Account 3,123,2000,USD,E,5
08/31/16,Account 3,111,2000,USD,FC,5
【问题讨论】:
-
您能否详细解释一下日期 - 1) 您是否要获取 csv 文件并计算来自
test.csv的所有唯一日期? 2) 在两个日期之间从test.csv获取数据?无论哪种情况,您都应该使用pandas模块,因为这真的很容易。 -
@Chinny84 不幸的是,不能使用熊猫,因为在我的服务器中我无法导入模块。差不多 2. 从 csv 中获取数据并通过从列表中附加一个新日期来创建一组新的相同数据。
-
我可能有点密集 - 但
test.csv与Final Output有何不同? -
@Chinny84 我只分享一小部分数据。目标是获取现有数据 (test.csv) 并将该数据克隆到不同的日期。我必须附加两年的日期(大约 730 天)。在 csv 中执行此操作对我来说并不理想。所以写一个自动化脚本。