csv 파일에서 모든 n 행의 계산 평균

사이드 :

나는 25000 개 행이 CSV 파일을 가지고있다. 나는 다른 csv 파일의 모든 30 행의 평균을 넣고 싶다.

나는 아래로 9 행으로 예를 준 새로운 CSV 파일은 3 개 행이 (3, 1, 2) :

|   H    |
 ========
|   1    |---\
|   3    |   |------------->| 3 |
|   5    |---/
|  -1    |---\
|   3    |   |------------->| 1 |
|   1    |---/
|   0    |---\
|   5    |   |------------->| 2 |
|   1    |---/

제가 한:

import numpy as np
import pandas as pd

m_path = "ALL0001.CSV"

m_df = pd.read_csv(m_path, usecols=['Col-01']) 
m_arr =  np.array([])
temp = m_df.to_numpy()
step = 30
for i in range(1, 25000, step):
    arr = np.append(m_arr,np.array([np.average(temp[i:i + step])]))

data = np.array(m_arr)[np.newaxis]

m_df = pd.DataFrame({'Column1': data[0, :]})
m_df.to_csv('AVG.csv')

이 잘 작동하지만 더 나은 솔루션이있다?

이스 르엘 :

다음과 같은 방법으로 정수 나누기를 사용하여 step연속적인 그룹과에 전달 groupby골재 mean:

step = 30
m_df = pd.read_csv(m_path, usecols=['Col-01']) 
df = m_df.groupby(m_df.index // step).mean()

또는:

df = m_df.groupby(np.arange(len(dfm_df// step).mean()

샘플 데이터 :

step = 3
df = m_df.groupby(m_df.index // step).mean()
print (df)
   H
0  3
1  1
2  2

추천

출처http://43.154.161.224:23101/article/api/json?id=364542&siteId=1