亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

追加 pandas 數據框問題

追加 pandas 數據框問題

人到中年有點甜 2023-07-18 09:44:10
我有兩個數據框,有 2100 行 × 857 列。我想將第二個附加到第一個。我用X_train_features = X_train_features.append(X_train_Specfeatures, ignore_index= True)這個。但我得到的數據框不是 4200 行 x 857 列,而是 4200 行 x 1714 列。看看下面的圖片。這是第一個數據框。這是第二個。我通過附加得到的輸出是我不明白出了什么問題。
查看完整描述

3 回答

?
萬千封印

TA貢獻1891條經驗 獲得超3個贊

事實上,您想要的是連接兩個數據框。

您可以使用 pd.concat()

pd.concat([first_df,second_df],axis=0)


查看完整回答
反對 回復 2023-07-18
?
慕后森

TA貢獻1802條經驗 獲得超5個贊

合并兩個數據框的常用方法是使用 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)


查看完整回答
反對 回復 2023-07-18
?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

也許你可以解決你的具體問題


X_train_Specfeatures.columns = X_train_features.columns

背景


正如評論中提到的,當兩個 dfs 的列標簽不相同時,通常會發生這種情況。


拿這兩個dfs


df = 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? 1

0? 0? 1

1? 2? 3

2? 0? 1

3? 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? ? 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

請注意,即使列名打印相同,它們實際上是不同的值(一個 df0是整數,另一個是字符串)。因此 pandas 將它們解釋為不同的列,并且由于第二個 df 沒有第一列的值,因此它會填充NaN.

查看完整回答
反對 回復 2023-07-18
  • 3 回答
  • 0 關注
  • 153 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號