[英]How to create indicator columns in a pandas dataframe based on groups in another dataframe?
[英]How to update pandas dataframe columns based on another dataframe faster?
我正在使用下面的代碼來更新基於另一個的數據框。 但是,它非常慢。 我正在尋找解決方案。
for inx, row in df1.iterrows():
dfTmp = df2.loc[df2['KANR'].astype(str) == row['KANR']]
if dfTmp.empty:
continue
if dfTmp.loc[dfTmp['STATUS'] == "F5"].empty is False:
timestamp = "%s %s" % (dfTmp.loc[dfTmp['STATUS'].astype(str) == "F5"].iloc[0, ]["Date"],
dfTmp.loc[dfTmp['STATUS'].astype(str) == "F5"].iloc[0, ]["Time"])
df1.set_value(inx, 'F5', timestamp)
您可以使用merge
,它已針對速度進行了優化,並且對於這種匹配任務來說會更快,類似這樣,假設您沒有每個KANR
重復日期時間:
df2['F5'] = df2['Date'].astype(str) + " " + df2['Time'].astype(str)
to_join = df2.loc[df2['STATUS'].astype(str) == 'F5', ['F5', 'KANR']].groupby('KANR').head(1)
df1.merge(to_join, how='left', on = 'KANR')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.