3 回答

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊
事實(shí)上,您想要的是連接兩個(gè)數(shù)據(jù)框。
您可以使用 pd.concat()
pd.concat([first_df,second_df],axis=0)

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
合并兩個(gè)數(shù)據(jù)框的常用方法是使用 pandas .concat() 函數(shù)。然后,您必須指定 axis = 0 以根據(jù)列的標(biāo)簽合并數(shù)據(jù)框:
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)

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊
也許你可以解決你的具體問(wèn)題
X_train_Specfeatures.columns = X_train_features.columns
背景
正如評(píng)論中提到的,當(dāng)兩個(gè) dfs 的列標(biāo)簽不相同時(shí),通常會(huì)發(fā)生這種情況。
拿這兩個(gè)dfs
df = pd.DataFrame([[0, 1], [2, 3]])
df2 = df.copy()
如果您append(或concat,都一樣),您將得到 4x2 df,因?yàn)榱袠?biāo)簽完全相同。
# df_out = df.append(df2, ignore_index=True)
df_out = pd.concat([df, df2])
print(df_out)
? ?0? 1
0? 0? 1
1? 2? 3
2? 0? 1
3? 2? 3
但是,如果您更改一個(gè) df 中的列名稱,您將得到一個(gè) 4x4 df,因?yàn)?pandas 會(huì)嘗試對(duì)齊列標(biāo)簽。
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? ? 1
0? 0.0? 1.0? NaN? NaN
1? 2.0? 3.0? NaN? NaN
2? NaN? NaN? 0.0? 1.0
3? NaN? NaN? 2.0? 3.0
請(qǐng)注意,即使列名打印相同,它們實(shí)際上是不同的值(一個(gè) df0是整數(shù),另一個(gè)是字符串)。因此 pandas 將它們解釋為不同的列,并且由于第二個(gè) df 沒(méi)有第一列的值,因此它會(huì)填充N(xiāo)aN.
添加回答
舉報(bào)