我有以下2個dataframes有:加入Python的數據幀的時間序列有效
day
date val
11740 2016-01-04 1.3970
11741 2016-01-05 1.3991
11742 2016-01-06 1.4084
11743 2016-01-07 1.4061
和
df
Adj_Close Close Date High Low
182 12927.200195 12927.200195 2016-01-04 12928.900391 12748.50
181 12920.099609 12920.099609 2016-01-05 12954.900391 12839.799805
180 12726.799805 12726.799805 2016-01-06 12854.599609 12701.700195
179 12448.200195 12448.200195 2016-01-07 12661.200195 12439.099609
我有一個俗氣環路aligh通過創建一個新的數據框(new_df)日期'加入'通用日期。
new_df = pd.DataFrame(columns=['date', 'close', 'fx', 'usd'])
for indexFx, rowFx in day.iterrows():
for indexSt, rowSt in df.iterrows(): #this is not efficient
fxDate = str(rowFx.date)[:10] #only keep data component not time
if str(rowSt['Date']) == fxDate:
dateObj = datetime.strptime(rowSt.Date,'%Y-%m-%d')
row = [dateObj, rowSt.Close,rowFx.val, float(rowSt.Close) * float(rowFx.val)]
new_df.loc[len(new_df)] = row
我知道有一種有效的方式來對這個循環進行Python化。有人可以幫忙嗎?
感謝
'pd.merge(df,day,left_on ='Date',right_on ='date')'? – MaxU
@MaxU我試過這個,但結果數據框是空白的,沒有數據? –
您是否在兩個DF中有匹配的日期? – MaxU