我有一个数据框 df 如下:
A B C
1 2 3
2 1 2
3 3 1
我想要每一列的平均值并用它制作一个数据框。 在这个例子中就是这样:
A B C
2 2 2
我做的代码是:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(10, 3), columns=list('ABC')) # To create df
dfs = np.array_split(df.sample(frac=1),4) # Split it in 4
daf = []
for i in range(len(dfs):
daf.append(dfs[i].mean())
daf.to_frame()
但是我无法让它工作。
最佳答案
使用mean
, 但因为它返回 Series
使用 to_frame
并转置:
df = df.mean().to_frame().T
print (df)
A B C
0 2.0 2.0 2.0
或者:
df = pd.DataFrame([df.mean()])
print (df)
A B C
0 2.0 2.0 2.0
对于多个DataFrame
:
daf = []
for i in dfs:
daf.append(i.mean().to_frame().T)
print (daf[0])
A B C
0 -0.92493 1.022305 1.52295
什么是列表理解
解决方案:
daf = [i.mean().to_frame().T for i in dfs]
关于python - 多个数据帧的每一列的平均值到一个数据帧 - Python pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47514858/