合并具有相同列名的多个数据框pandas

问题描述 投票:0回答:1

我有多个数据帧存储在数据帧列表中,我需要从每个数据帧中取出某个列,比如

['d']
并将其放入新定义的数据帧中,但将它们放在彼此旁边,以便计算平均值每行的最后。如何在 python 中做到这一点。

dataFrameList = [df1,df2,df3,df4,..dfn]

所有 dfs 具有相同的列数和名称,例如 a、b、c、d、e、f、g,但行数不同(长度不同)df1 有 115 行,df2 有 220 行,df3 有 90 行,等等。

newDataFrame=pd.DataFrame()
被定义为将每个数据帧中所需的列 d 放在此处。 d1,d2,d3,d4,....dn 但它们必须彼此正确,才能计算每行的平均值。

如何做到这一点?

newDataFrame=(d1  d2  d3  d4  ... dn)
               2   5   7  8   .... 1
               3   4    8 9   .... 2
               .
               .
               .  
               Nan 9  Nan 15 ...9 
python dataframe select
1个回答
0
投票
import pandas as pd
df1 = pd.DataFrame({'d1': range(2,4),'d2': range(2,4),'d3': range(2,4)})
df2 = pd.DataFrame({'d1': range(5,12),'d2': range(5,12),'d3': range(5,12)})
df3 = pd.DataFrame({'d1': range(7,15),'d2': range(7,15),'d3': range(7,15)})
df4 = pd.concat([df1['d1'], df2['d2'], df3['d3']], axis=1, keys=['d1', 'd2', 'd3'])

use_dfs = [df1, df2, df3]
use_col = ['d1', 'd2', 'd3']
df4 = pd.concat([d[c] for d,c in zip(use_dfs,use_col)], axis=1, keys=use_col)

输出:

d1 d2 d3
2 5 7
3 6 8
7 9
8 10
9 11
10 12
11 13
14
© www.soinside.com 2019 - 2024. All rights reserved.