python – 从数据集上给定的日期范围中提取属于某一天的数据
发布时间:2020-12-20 11:07:18 所属栏目:Python 来源:网络整理
导读:我的数据集的日期范围是2018年1月12日到8月3日,其中包含一些值: my_df DataFrame的维度是: my_df.shape (9752,2) 每行包含半小时的频率 第一行开始于2018-01-12 my_df.iloc[0]Date: 2018-01-12 00:17:28Value 1Name: 0,dtype: object 最后一排结束于2018-0
我的数据集的日期范围是2018年1月12日到8月3日,其中包含一些值:
my_df DataFrame的维度是: 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月03日有203天(28周) 我不想每天手动执行此查询,然后我尝试以下基本分析: >我需要生成203个文件(每天1个文件) 然后: >我需要迭代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),index=False) 但是我的问题在于我在几个月内迭代范围(12,32),这个范围(12,32)仅适用于1月份的第一个月,我想是这样…… 最后,我得到203个空的CSV文件,因为我做错了… 如何才能解决这种适合的小挑战? 解决方法
像这样的东西?我将您的原始列Date:重命名为Timestamp.我也假设您拥有的日期:系列是熊猫DateTime系列.
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) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |