我有一个函数,它将计算pandas数据帧的列“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]
您可以:
是的,您可以使用
pd.Grouper
API。此外,这将保留数据帧,因此这是一个双赢的选择。在或者,可以在datetime索引的底部分组。在
^{pr2}$我更喜欢方法1,因为
pd.Grouper
应该比在不相关的序列/数组上分组(如第二种形式)更有效。在相关问题 更多 >
编程相关推荐