-
万千封印
事实上,您想要的是连接两个数据框。您可以使用 pd.concat()pd.concat([first_df,second_df],axis=0)
-
慕后森
合并两个数据框的常用方法是使用 pandas .concat() 函数。然后,您必须指定 axis = 0 以根据列的标签合并数据框:df1=pd.DataFrame({"a":[1,2,3],"b":[4,5,6]})df2=pd.DataFrame({"a":[7,8,9],"b":[10,11,12]})pd.concat([df1,df2],axis=0)
-
慕田峪7331174
也许你可以解决你的具体问题X_train_Specfeatures.columns = X_train_features.columns背景正如评论中提到的,当两个 dfs 的列标签不相同时,通常会发生这种情况。拿这两个dfsdf = pd.DataFrame([[0, 1], [2, 3]])df2 = df.copy()如果您append(或concat,都一样),您将得到 4x2 df,因为列标签完全相同。# df_out = df.append(df2, ignore_index=True)df_out = pd.concat([df, df2])print(df_out) 0 10 0 11 2 32 0 13 2 3但是,如果您更改一个 df 中的列名称,您将得到一个 4x4 df,因为 pandas 会尝试对齐列标签。df2.columns = ['0', '1']# df_out = df.append(df2, ignore_index=True)df_out = pd.concat([df, df2], ignore_index=True)print(df_out) 0 1 0 10 0.0 1.0 NaN NaN1 2.0 3.0 NaN NaN2 NaN NaN 0.0 1.03 NaN NaN 2.0 3.0请注意,即使列名打印相同,它们实际上是不同的值(一个 df0是整数,另一个是字符串)。因此 pandas 将它们解释为不同的列,并且由于第二个 df 没有第一列的值,因此它会填充NaN.