使用 Pandas 数据帧的日期时间索引,很容易获得一系列日期:
df[datetime(2018,1,1):datetime(2018,1,10)]
Run Code Online (Sandbox Code Playgroud)
过滤也很简单:
df[ (df['column A'] = 'Done') & (df['column B'] < 3.14 )]
Run Code Online (Sandbox Code Playgroud)
但是,同时按日期范围和任何其他非日期标准进行过滤的最佳方法是什么?
我有一个函数可以计算同一日期的熊猫数据框的“A”列中的值的均值。有没有比最后一行中的列表理解更有效的方法?
import pandas as pd
import numpy as np
def daily_mean(df,date,col):
return df[date][col].mean()
data = np.random.rand(100)
columns = ['A']
times = pd.date_range('20180101',freq='9H',periods=100)
df = pd.DataFrame(data=data,index=times,columns=columns)
dates = df.index.strftime('%Y%m%d').unique()
means = [daily_mean(df,date,'A') for date in dates]
Run Code Online (Sandbox Code Playgroud)