python - pandas timeseries DF 切片和选择

标签 python list datetime pandas resampling

我有一个时间序列索引的 df,频率为 15 分钟,持续 10 年:

                        dat
2004-04-07 00:00:00     4.0
2004-04-07 00:15:00     1.0
2004-04-07 00:30:00     2.0

我需要能够提取每天(0-24 小时)的最小和最大“dat”值并将它们附加到单独的列表中。

我的计划是使用日期时间索引并循环如下:

days = pd.to_datetime(pd.date_range(start = s, end = e, freq='1d'), format='%Y%m%d')

for day in days:
    mn.append(min(df.loc[day].dat))

但是,在“days”中创建的时间戳有小时(尽管格式不同),因此每次仅返回 00:00:00 小时值:

2004-04-07 00:00:00     4.0
mn[0] '4.0'

最佳答案

我认为你可以使用resampleResampler.aggregate :

df = df.resample('D').agg({'dat': ['min','max']})
print (df)
            dat     
            min  max
2004-04-07  1.0  4.0

另外:

df = df.resample('D')['dat'].agg({'min_dat': 'min', 'max_dat': 'max'})
print (df)
            max_dat  min_dat
2004-04-07      4.0      1.0

如果需要创建列表,请使用 tolist :

Lmin = df.min_dat.tolist()
print (Lmin)
[1.0]

Lmax = df.max_dat.tolist()
print (Lmax)
[4.0]

关于python - pandas timeseries DF 切片和选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40285676/

相关文章:

list - JasperReports列表+新页每条记录

带有 List 作为属性值的 java hashmap

datetime - 计算R中2个日期之间的工作日数

javascript - javascript/jQuery 中的日期差异

python-2.7 - 将俄语字符串转换为日期时间

Python。如何重定向玛雅历史?

python - pandas:如何通过选择列范围来过滤行?

python - 将列表列表转换为Python中的字典字典

Python:删除列中的相似字符串

python - 如何使用 Google Python AppEngine 从 Backbone 应用程序发送电子邮件