添加列,每一行我有蟒蛇大熊貓不同長度的兩個dataframes這樣的:按行長度不同行的兩個dataframes比較和同等價值
df1: df2:
Column1 Column2 Column3 ColumnA ColumnB
0 1 a r 0 1 a
1 2 b u 1 1 d
2 3 c k 2 1 e
3 4 d j 3 2 r
4 5 e f 4 2 w
5 3 y
6 3 h
什麼我想現在要做的就是比較df1的Column1和df2的ColumnA。對於每個「hit」,其中df2中的ColumnA中的行與df1中的Column1中的行具有相同的值,我想將df1的列添加到df1中,並且df2的值ColumnB具有找到「hit」的行,讓我的結果是這樣的:
df1:
Column1 Column2 Column3 Column4 Column5 Column6
0 1 a r a d e
1 2 b u r w
2 3 c k y h
3 4 d j
4 5 e f
我迄今試圖爲:
for row in df1, df2:
if df1[Column1] == df2[ColumnA]:
print 'yey!'
這給了我一個錯誤說我不能比較不同長度的兩個dataframes。所以,我想:
for row in df1, df2:
if def2[def2['ColumnA'].isin(def1['column1'])]:
print 'lalala'
else:
print 'Nope'
其中「作品」中,我得到的輸出,但我不認爲它遍歷行並對它們進行比較而言,因爲它只打印「LALALA」兩次。於是我研究了一些,並找到一種方法來遍歷數據幀中的每一行,這就是:
for index, row in df1.iterrows():
print row['Column1]
但我不知道怎麼用它來比較兩個dataframes的列,並得到輸出I慾望。
任何有關如何做到這一點的幫助將非常感激。
謝謝你,非常簡潔答案!但是我注意到,我不太清楚你從buffer_df = ....到dfs = dfs.append(buffer_df)所做的事情。你能解釋一下代碼的作用嗎?謝謝! –
實際上,我認爲我得到了單行代碼的功能,但我不明白它們如何一起創建輸出... –
@sequence_hard再次檢查我的答案:添加新的細節。你的過程變得更清楚了嗎? – Gregg