2016-05-26 34 views
3

我有一个熊猫df,时间序列经过34毫秒,我只需要5秒的分辨率。我最初创建了一个时间戳,并试图将时间戳设置为索引,并重新采样和.iloc。删除熊猫中的第n行

# Defining file path 
file = "C:/file/path/data.csv" 

# Read in data and parse date/time to DateTime format 
data = pd.read_csv(file,header=10,parse_dates=[[0,1]],dayfirst=False) 

# time stamp in preferred format 
data['date_stamp'] = pd.to_datetime(data['Date_ Time'],dayfirst=False) 

#trying to get every 5 seconds, not 34 milliseconds 
data.iloc[::15,:] 

# saving new file to csv 
data.to_csv(""C:/file/path/data.csv"",date_format='%Y%m%d %H:%M:%S') 

这将是最好做一个时间指数和重新取样?这段代码总是返回df中的相同数据。什么是将这些数据压缩成5秒间隔的最佳方式?

+0

什么是错的'重采样()'? – MaxU

+0

取决于你想要什么,IMO'resampl'ing就是我想要做的 – EdChum

+0

你是想每5秒汇总一次(sum/avg/etc这些行)还是只抓住彼此间隔5秒的所有行 – sedavidw

回答

5

我认为你可以使用resamplefirst

data.set_index('date_stamp', inplace=True) 
print (data.resample('5S').first()) 

docs

如果使用较老的大熊猫为0.18.0

print (data.resample('5S', how='first'))