我想将两个数据帧合并在一起;一个是具有列标题的空数据帧,另一个是大小为18 x 600的数据帧。
我尝试了什么:
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 x 600。
userQuestionVector1
和userQuestionVector2
的尺寸为18 x 300。
userQuestionVector
的尺寸为18 x 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 :(得分:2)
在阅读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
希望这有帮助。