从数据集的给定日期范围中提取属于一天的数据

2024-06-21

我有一个数据集,日期范围为 2018 年 1 月 12 日到 8 月 3 日,其中包含一些值:

维数为my_df数据框是:

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)

Then:

  • I need to iterate over the 203 days totality
    • 并且是必要的在每个日期行值中查看 订单的月份和日期起息日以检查更改 他们每一个人

根据上述,我正在尝试这种方法:

# 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 文件......

我怎样才能以合适的方式解决这个小挑战? 任何方向都受到高度赞赏


像这样的东西吗?我把你原来的专栏改名为Date: to Timestamp。我还假设Date:你的系列是熊猫DateTime series.

my_df.columns = ['Timestamp', 'Value']
my_df['Date'] = my_df['Timestamp'].apply(lambda x: x.date())
dates = my_df['Date'].unique()
for date in dates:
    f_name = str(date) + '.csv'
    my_df[my_df['Date'] == date].to_csv(f_name)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从数据集的给定日期范围中提取属于一天的数据 的相关文章

随机推荐