如何将多个列从一个数据帧迭代地追加到另一个数据帧?

时间:2020-03-24 20:46:43

标签: python pandas dataframe

让我们假设2个数据帧(浮点类型)是由某个函数生成的,它们具有相同的索引/行数和动态列数。

    df1                       df2 
    0      avg          0      1         avg      
0   1.1    1.1      0   2.1     2.4      2.25
1   1.2    1.2      1    2.2    2.5      2.35
2   1.3   1.3       2    2.3    2.6      2.45

我想从每个df中获取除最后一个列之外的所有列,然后以迭代方式将它们附加到新的df中。

我尝试了以下

df_lst=[df1, df2]
total_df=pd.DataFrame()

for frame in df_lst:
    total_df=pd.concat(total_df, frame.iloc[:, 0:-1])

但是由于某种原因,new_df在附加的最后一列中具有NaN值

有人可以解释为什么会这样吗? 我该如何解决呢?(我也尝试了join,append,assign,但是new_df中的所有列都是空的)

所需的输出看起来像

new_df
0    1.1    2.1   2.4
1    1.2    2.2   2.5
2    1.3    2.3   2.6

1 个答案:

答案 0 :(得分:1)

只需将轴添加到concat

df_list = [df1,df2]

pd.concat([d.iloc[:, :-1] for d in df_list], axis=1)

输出:

     0    0    1
0  1.1  2.1  2.4
1  1.2  2.2  2.5
2  1.3  2.3  2.6
相关问题