2017-07-17 54 views
0

我想合併兩個數據幀;一個是具有列標題,而另一個空數據幀大小是18×600合併數據幀與Python中具有列標題的空數據幀

的數據幀我的嘗試:

userQuestionVector1 = pd.read_csv("embedding1_3.csv") 
userQuestionVector2 = pd.read_csv("embedding2_3.csv") 
userQuestionVector = pd.concat([userQuestionVector1,userQuestionVector2],axis=1) 
new_df = pd.DataFrame(columns=[vector]) 
df_userQuestionVector = new_df.append(userQuestionVector) 
print(df_userQuestionVector) 

在這裏,vector是600串的列表。

['word2vec_q1_1', 'word2vec_q1_2', 'word2vec_q1_3', ..., 'word2vec_q1_300', 'word2vec_q2_1', ..., 'word2vec_q2_300'] 

new_df尺寸是0維userQuestionVector1userQuestionVector2 X 600

是18維的userQuestionVector X 300

是18×600

輸出df_userQuestionVector是18 x 1200維,即它將兩個數據框並排合併,剩下的一半帶有NaN值。

value1_1 value1_2 value1_3 ... value1_300 string1 string2 string3 ... string300 
0 value2_1 value2_2 value2_3 ... value2_300 NaN  NaN  NaN ...  NaN 
1 value3_1 value3_2 value3_3 ... value3_300 NaN  NaN  NaN ...  NaN 
2 value4_1 value4_2 value4_3 ... value4_300 NaN  NaN  NaN ...  NaN 
. .  .  .   .  .  .   . 
. .  .  .   .  .  .   . 

預期輸出應爲18 X 600的尺寸即df_userQuestionVector應該合併下面new_df

string1 string2 string3 ... string300 
0 value1_1 value1_2 value1_3 ... value1_300 
1 value2_1 value2_2 value2_3 ... value2_300 
2 value3_1 value3_2 value3_3 ... value3_300 
. .  .  .   .  .  
. .  .  .   .  .  

我也試過:

frames=[new_df, userQuestionVector] 
df_userQuestionVector = pd.concat(frames,axis=0) 

但是這給了我同樣的結果。

我應該如何解決這個問題?謝謝。

+0

什麼是'vector'?爲什麼不只是使用附加的2個數據幀呢? – gionni

+0

@gionni向量是600個字符串的列表。看看我更新的問題。 –

+0

@gionni你提到哪兩個數據框? –

回答

1

在閱讀CSV設置頁眉爲無,而是創建一個數據框new_df的設置userQuestionVector數據框列vector即更改代碼以

userQuestionVector1 = pd.read_csv("embedding1_3.csv", header= None) 
userQuestionVector2 = pd.read_csv("embedding2_3.csv", header = None) 
userQuestionVector = pd.concat([userQuestionVector1,userQuestionVector2],axis=1) 
userQuestionVector.columns = vector 

希望這有助於。

+0

謝謝!有效。 –

+0

@ K.K很高興幫助 – Dark