【问题标题】:Removing nth row in Pandas删除 Pandas 中的第 n 行
【发布时间】:2016-09-24 13:17:00
【问题描述】:

我有一个时间序列为 34 毫秒的 Pandas df,我只需要 5 秒的分辨率。我最初创建了一个时间戳,并尝试将时间戳设置为索引并重新采样和 .iloc。

# 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.xml 中返回相同的数据。将此数据压缩为 5 秒间隔的最佳方法是什么?

【问题讨论】:

  • resample() 有什么问题?
  • 取决于你想要什么,IMO resampling 是我会做的
  • 您是要每 5 秒聚合一次(总和/平均/等行)还是只抓取所有相隔 5 秒的行

标签: python datetime pandas resampling


【解决方案1】:

我认为您可以将resamplefirst 一起使用:

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

docs

如果使用较旧的 pandas 作为0.18.0

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-04
    • 2017-05-13
    相关资源
    最近更新 更多