基本上我有兩個DataFrame並希望通過匹配第二個第三個元素和第一個元素來重新填充第二個列。舉個例子,我在兩個DataFrame中都有列「Period」和「Hub」。對於第二個DataFrame中的每一行,我想獲取Index(它是一個日期)和「Product」/「Hub」(它們是字符串)的值,並找到第一個DataFrame中具有相同值的行相應的列)並從該行返回「期間」的值。然後,我可以使用此值在第二個DataFrame中填充我的行。通過匹配另一個DataFrame中的值來優化pandas DataFrame列的填充
我有一個工作解決方案,但它真的很慢。也許這只是由於DataFrames的大小(大約100k行),但它需要花費一個多小時才能完成!
無論如何,這是我的工作解決方案 - 任何提示如何加快它將非常感激!
def selectData(hub, product):
qry = "Hub=='"+hub+"' and Product=='"+product+"'"
return data_1.query(qry)
data_2["Period"] = data_2.apply(lambda row: selectData(row["Hub"], row["Product"]).ix[row.index, "Period"], axis=1)
編輯:我要指出的是,第一個數據幀是保證有一個唯一的結果我的查詢,但包含更大的一組來填充data_2
EDIT2要求比數據的:我只是意識到這是事實上不是工作的解決方案...
PLS顯示輸入數據和你所期望的輸出是什麼。可複製的soln是最好的。 – Jeff