让我们假设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
答案 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