【发布时间】:2019-02-15 07:44:38
【问题描述】:
我有一个日期范围为 2018 年 1 月 12 日至 8 月 3 日的数据集,其中包含一些值:
my_dfDataFrame的维数为:
my_df.shape
(9752, 2)
每行包含半小时频率
第一行从2018-01-12开始
my_df.iloc[0]
Date: 2018-01-12 00:17:28
Value 1
Name: 0, dtype: object
最后一行以2018-08-03结尾
my_df.tail(1)
Date: Value
9751 2018-08-03 23:44:59 1
我的目标是选择每天对应的数据行并将其导出为 CSV 文件。
要仅获取 1 月 12 日的数据并保存到可读文件,我执行:
# Selecting data value of each day
my_df_Jan12 = my_df[(my_df['Fecha:']>='2018-01-12 00:00:00')
&
(my_df['Fecha:']<='2018-01-12 23:59:59')
]
my_df_Jan12.to_csv('Data_Jan_12.csv', sep=',', header=True, index=False)
从 1 月 12 日到 8 月 3 日共有 203 天(28 周)
我不想每天手动执行这个查询,那么我正在尝试以下基本分析:
- 我需要生成203个文件(每天1个文件)
- 1 月 12 日(1 月 12 日)开始的那一天
- 一月是第一个月 (01),八月是八个月 (08)
然后:
- 我需要迭代 203 天的总数
- 并且是必需的在每个日期行值检查 带有订单的月份和日期起息日以检查更改 他们每个人
根据上述,我正在尝试这种方法:
# Selecting data value of each day (203 days)
for i in range(203):
for j in range(1,9): # month
for k in range(12,32): # days of the month
values = my_df[(my_df['Fecha:']>='2018-0{}-{} 00:00:00'.format(j,k))
&
(my_df['Fecha:']<='2018-0{}-{} 23:59:59'.format(j,k))]
values.to_csv('Values_day_{}.csv'.format(i), sep=',', header=True, index=False)
但是当我在几个月的日子里迭代range(12,32) 时,我有一个问题,这个range(12,32) 只适用于一月的第一个月,我想是的......
最后,由于我做错了什么,我得到了 203 个空的 CSV 文件......
我该如何解决这个适合方式的小挑战? 任何方向都受到高度赞赏
【问题讨论】: