使用Pandas规整Excel表:将分钟级数据转为15分钟间隔采样
解决方案:保留15分钟整点的原始记录
嘿,我明白你的需求了——你不需要对15分钟窗口内的数据求和,只想精准保留那些分钟数为0、15、30、45的原始记录对吧?这其实不用resample求和,换个思路直接筛选就行,给你两种靠谱的方法:
方法一:直接筛选分钟数(推荐,完全保留原始数据)
这种方法直接从原数据中挑选符合时间条件的行,不做任何聚合操作,完美匹配你的需求:
import pandas as pd # 读取Excel数据 data = pd.read_excel('file.xlsx') # 确保Datetime列是pandas的datetime类型(避免读入时格式异常) data['Datetime'] = pd.to_datetime(data['Datetime']) # 筛选出分钟数为0、15、30、45的记录 filtered_data = data[data['Datetime'].dt.minute.isin([0, 15, 30, 45])] # 保存结果到新Excel文件 filtered_data.to_excel('new_file.xlsx', index=False)
说明:如果你的数据是严格每分钟一条,这个方法会精准保留每个15分钟整点的那条原始记录,直接删除中间时段的数据,完全符合你的预期。
方法二:使用asfreq()确保严格时间间隔
如果需要确保最终结果是严格的15分钟时间序列(哪怕原数据中某个整点记录缺失,会保留时间戳并填充NaN),可以用这个方法:
import pandas as pd data = pd.read_excel('file.xlsx') data['Datetime'] = pd.to_datetime(data['Datetime']) # 将Datetime设为索引,使用asfreq获取15分钟整点数据 data.set_index('Datetime', inplace=True) filtered_data = data.asfreq('15T') # 还原索引并保存 filtered_data.reset_index(inplace=True) filtered_data.to_excel('new_file.xlsx', index=False)
说明:这个方法会强制生成连续的15分钟时间戳,适合需要严格对齐时间序列的场景;如果原数据无缺失,结果和方法一完全一致。
内容的提问来源于stack exchange,提问作者LordVader
相关产品推荐
相关产品推荐

