从含时间戳的DataFrame中按小时提取分钟数据并拆分保存
提取指定小时的分钟级数据解决方案
没问题,这事儿用pandas就能轻松搞定!针对你12万+行的分钟级时间序列数据,我给你一步步拆解实现步骤:
1. 先把时间戳转成可处理的datetime类型
你的时间戳现在是字符串格式,得先转成pandas的datetime类型,这样才能按小时筛选。假设你的时间戳列名叫timestamp,代码如下:
import pandas as pd # 读取原始数据(如果是Excel就用pd.read_excel,根据实际格式调整) df = pd.read_csv('your_raw_data.csv') # 转换时间戳列 df['timestamp'] = pd.to_datetime(df['timestamp'])
2. 筛选指定小时的数据
接下来就可以提取你想要的任意小时的所有分钟数据了:
- 如果要提取单个小时(比如每天的5点):
target_hour = 5 # 替换成你需要的小时,0-23之间的整数 df_filtered = df[df['timestamp'].dt.hour == target_hour] - 如果要提取多个小时(比如每天的8点和9点):
target_hours = [8, 9] df_filtered = df[df['timestamp'].dt.hour.isin(target_hours)] - 要是还想限定日期范围(比如2018年1月1日到1月10日的5点):
df_filtered = df[ (df['timestamp'].dt.hour == 5) & (df['timestamp'].between('2018-01-01', '2018-01-11')) ]
3. 保存筛选后的结果
最后把提取好的数据保存到单独的文件里,推荐用CSV(通用且占用空间小),也可以存成Excel:
# 保存为CSV df_filtered.to_csv(f'hour_{target_hour}_data.csv', index=False) # 要是存Excel,需要先安装openpyxl库:pip install openpyxl # df_filtered.to_excel(f'hour_{target_hour}_data.xlsx', index=False) print(f"搞定!{target_hour}点的所有分钟数据已经保存好了~")
小提示
- 如果原始数据的时间戳列名不是
timestamp,记得替换成你实际的列名; - 处理12万+行数据时,如果内存不够,可以用pandas的
chunksize参数分块读取处理,避免内存溢出; - 要是你需要批量提取多个小时的数据,可以写个循环,自动生成对应文件。
内容的提问来源于stack exchange,提问作者Mus
相关产品推荐
相关产品推荐

