首页 > 解决方案 > Python Pandas Datetime 每天循环

问题描述

我的 pd 的一个简单示例是:

DateTime               C_CL       C_EB
2018-01-03 10:30    -0.002726   -0.002921
2018-01-03 10:50    -0.005832   -0.005343
2018-01-03 11:10    -0.006966   -0.007278
2018-01-03 11:30    -0.01883    -0.019026
2018-01-04 10:30    -0.0021     -0.001261
2018-01-04 10:50     0.006887    0.00595
2018-01-04 11:10    -0.00076    -0.000717
2018-01-04 11:30     0.002282    0.002152

datetime 是dtype='datetime64[ns]'所以很容易做类似的事情df['2018-01-04'],它会拉起来。

问题是如何创建一个循环,让我可以在不知道时间序列中的哪一天的情况下一次迭代每一天。我不担心时间,只担心一天。这样做的原因是只对当天进行一些计算,附加到表格并移至第二天。

标签: pythonpandas

解决方案


这有帮助吗?

重新创建数据框:

import pandas as pd
import numpy as np

data = '''\
DateTime               C_CL       C_EB
2018-01-03T10:30    -0.002726   -0.002921
2018-01-03T10:50    -0.005832   -0.005343
2018-01-03T11:10    -0.006966   -0.007278
2018-01-03T11:30    -0.01883    -0.019026
2018-01-04T10:30    -0.0021     -0.001261
2018-01-04T10:50     0.006887    0.00595
2018-01-04T11:10    -0.00076    -0.000717
2018-01-04T11:30     0.002282    0.002152'''

file = pd.compat.StringIO(data)
df = pd.read_csv(file, sep='\s+', parse_dates=['DateTime'], index_col=['DateTime'])

以下是您可以运行的一些操作:

#df.groupby(df.index.date).sum()
#df.groupby(df.index.date).mean()
#df.groupby(df.index.date).std()
#df['sum_CL'] = df.groupby(df.index.date)['C_CL'].transform('sum')
#df.groupby(df.index.date)['C_CL'].agg(['sum','mean','std'])

推荐阅读