python以固定时间间隔取行

目录

  • 1. 间隔取行
  • 2. 时间戳间隔取行:下采样
  • 参考链接

1. 间隔取行

dataframe 实现每隔 n 行取 1 行

近期在做数据分析的时候,用到了对csv文件每隔n行取1行的操作,正常情况下会立马想到for循环,可能大家还会有其他方法,这里只介绍我能够想到的方法,如下

import pandas as pd
df = pd.read_csv('diaoyan.csv',header=None)
a=[]
for i in range(0,len(df),86):##每隔86行取数据
    a.append(i)
file = df.iloc[a]
file

python以固定时间间隔取行_第1张图片
但是最近看到了pandasread_csv方法里的skiprows参数后,突然有了灵感,感觉可以简化上述循环,然后就尝试了一下,果然特别方便的达到了我想要的效果(每隔86行取1行),代码如下:

import pandas as pd
diaoyan=pd.read_csv('diaoyan.csv',header = None,skiprows=lambda x: x > 0 and x % 86 != 0)
# series = series[::86]
diaoyan

2. 时间戳间隔取行:下采样

# 将列中的时间列设置为 index
# 注意如果 date 不是时间格式,用 pd.to_datetime 转换
t.set_index("date")
t.resample('10min',closed='right').last()

closed 参数
其实这个参数是针对聚合运算的, closed = ‘left’ 表示左闭右开。

还有一种方式

参考 https://tensorflow.google.cn/tutorials/structured_data/time_series

df = pd.read_csv(csv_path)
# Slice [start:stop:step], starting from index 5 take every 6th record.
df = df[5::6]
date_time = pd.to_datetime(df.pop('Date Time'), format='%d.%m.%Y %H:%M:%S')

参考链接

[1] dataframe 实现每隔n行取1行 2021.11;
[2] pandas 将数据等时间间隔采样(下采样): resample 2022.6;

你可能感兴趣的:(Python初级,python,开发语言)