Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 数据帧列表中列的中位数的平均值_Python 2.7_Python 3.x_Pandas_Numpy_Dataframe - Fatal编程技术网

Python 2.7 数据帧列表中列的中位数的平均值

Python 2.7 数据帧列表中列的中位数的平均值,python-2.7,python-3.x,pandas,numpy,dataframe,Python 2.7,Python 3.x,Pandas,Numpy,Dataframe,我正在寻找最好的方法来获取数据帧列表(相同的列名)中某列的中位数的平均值 假设我有一个数据帧列表list\u df。我可以为循环编写以下,以获得所需的输出。我更感兴趣的是看看是否可以消除for循环 med_arr = [] list_df = [df1, df2, df3] for df in list_df: med_arr.append(np.median(df['col_name'])) np.mean(med_arr) 以样本数据为例 np.random.seed([3,141

我正在寻找最好的方法来获取数据帧列表(相同的列名)中某列的中位数的平均值

假设我有一个数据帧列表
list\u df
。我可以为循环编写以下
,以获得所需的输出。我更感兴趣的是看看是否可以消除
for
循环

med_arr = []
list_df = [df1, df2, df3]
for df in list_df:
    med_arr.append(np.median(df['col_name']))
np.mean(med_arr)

以样本数据为例

np.random.seed([3,1415])
df1 = pd.DataFrame(dict(col_name=np.random.randint(10, size=10)))
df2 = pd.DataFrame(dict(col_name=np.random.randint(10, size=10)))
df3 = pd.DataFrame(dict(col_name=np.random.randint(10, size=10)))

list_df = [df1, df2, df3]

选项1
pandas

pd.concat([d['col_name'] for d in list_df], axis=1).median().mean()

3.8333333333333335

选项2
numpy

np.median([d['col_name'].values for d in list_df], 1).mean()

3.8333333333333335

以样本数据为例

np.random.seed([3,1415])
df1 = pd.DataFrame(dict(col_name=np.random.randint(10, size=10)))
df2 = pd.DataFrame(dict(col_name=np.random.randint(10, size=10)))
df3 = pd.DataFrame(dict(col_name=np.random.randint(10, size=10)))

list_df = [df1, df2, df3]

选项1
pandas

pd.concat([d['col_name'] for d in list_df], axis=1).median().mean()

3.8333333333333335

选项2
numpy

np.median([d['col_name'].values for d in list_df], 1).mean()

3.8333333333333335
这可以作为一个列表来完成:

这可以作为一个列表来完成: