python 中数据框每 15 行的平均值

Mean of every 15 rows of a dataframe in python

我有一个 (1500x11) 的数据框。我必须 select 15 行中的每一行,并分别取每 11 列的平均值。所以我的最终数据框应该是 100x11 的维度。如何在 Python.

中执行此操作

不太了解 pandas,因此我用纯 numpy 编写了我的下一个解决方案。没有任何 python 循环因此非常有效。并将结果转换回 pandas DataFrame:

Try next code online!

import pandas as pd, numpy as np

df = pd.DataFrame([[i + j for j in range(11)] for i in range(1500)])
a = df.values
a = a.reshape((a.shape[0] // 15, 15, a.shape[1]))
a = np.mean(a, axis = 1)
df = pd.DataFrame(a)
print(df)

您可以使用 pandas.DataFrame.

使用 for 循环计算均值并创建一个计数器,该计数器应每 15 个条目重置一次。

columns = [col1, col2, ..., col12]
for columns, values in df.items():
    # compute mean
    # at every 15 entries save it

此外,使用 pd.DataFrame() 您可以创建新的数据框。

我建议您阅读文档。 https://pandas.pydata.org/pandas-docs/stable/reference/frame.html

以下应该有效:

dfnew=df[:0]
for i in range(100):
    df2=df.iloc[i*15:i*15+15, :]
    x=pd.Series(dict(df2.mean()))
    dfnew=dfnew.append(x, ignore_index=True)

print(dfnew)