问题描述
我有一个数据帧,如图所示,我有400多个数据点。有什么简单的方法可以使用python计算每10个数据点的基本统计信息?
谢谢。
解决方法
使用计数器来计算迭代中已访问的行数。在10时,执行您想要的动作:(您可以将访问过的行存储在列表等位置)
import pandas as pd
df = pd.DataFrame(columns=['a','b','c'])
count = 0
for i,row in df.iterrows():
if count == 10:
## do basic statistics
count = 0
else:
## store the desire value for calculation
count += 1
,
使用熊猫滚动功能
df.rolling(window=10).sum()
或任何方法
在此处查看答案:Non-overlapping rolling windows in pandas dataframes
您可以使用pandas.rolling
或按索引分组:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.normal(size=(40,1)),columns = ['A'])
df.groupby(df.index//10).apply(lambda x: np.mean(x))
输出