首页 > 解决方案 > 如何在 pandas 中使用 vlookup 功能来计算这个?

问题描述

好吧,我在 pandas 中有一个数据框(main-df),其中我有交易信号和日期时间作为我的索引。我还有 20 个 excel 文件,我需要从中找到相应的日期时间并在 main-df 中获取收盘价。如何转到每个 excel 文件并检查日期时间是否匹配,然后返回收盘价。

标签: pythonpandas

解决方案


这应该为您指明正确的方向。

from pathlib import Path
import pandas as pd

excels = [pd.read_excel(f,sheet_name='your_sheet') for f in 
                       Path(r'dir/to/excels').glob('*.xlsx')]
# concat df.
df = pd.concat(excels)
# clean df.
# merge main_df
merged_df = pd.merge(df,main_df,on='date_time_column',how='inner')
#or if common date time is in index. 
merge_df = pd.merge(df,main_df,left_index=True,right_index=True,how='inner')

或者我们可以使用isin

dates_ = main_df['datetime_col'].tolist()
df_new = df.loc[df['datetime_col'].isin(dates_)]

推荐阅读