我在基于另一个数据集迭代筛选数据集时遇到问题。我有一个原始数据集(df1),其中包含股票及其按日期的平均回报。它是一个具有508行和183列的大型数据集,第一列包含股票名称。我有另一个数据集(df2),该数据集具有每个日期列的前30个股票名称。日期列是相同的。我希望基于df2的每个列值(每个日期30只股票的列表)在df1上迭代运行过滤器,并获取df1中下一列的收益。
我曾经尝试过过滤,合并和子集设置,但是我无法有效地在df2的所有列上运行。
df1
12/30/04 01/27/05 02/24/05 03/24/05
AAPL -4.41% 12.72% 23.09% -3.66%
AMZN 12.48% -5.60% -16.09% -3.69%
MSFT -1.80% -2.94% -2.46% -3.65%
MNST 3.04% 9.63% 12.66% 51.82%
…….. ….. …….. ……… …...
up to 508 rows
df2
12/30/04 01/27/05 02/24/05 03/24/05
MNST MNST AAPL MNST
ADSK AAPL VLO AAPL
AAPL HOLX MNST VLO
ISRG CME ISRG ISRG
CME HUM HOLX AES
WYNN ISRG NVDA CTSH
up to 30 rows
期望的输出 dfresult
12/30/2004 1/27/2005 2/24/2005 3/24/2005
Stock Return Stock Return Stock Return Stock Return
MNST 9.63% MNST 12.66% AAPL -3.66% MNST 6.38%
ADSK -22.56% AAPL 23.09% VLO 7.55% AAPL -12.62%
AAPL 12.72% HOLX 8.85% MNST 51.82% VLO 4.41%
ISRG -2.31% CME 6.55% ISRG 0.02% ISRG 14.70%
CME -7.91% HUM 0.42% HOLX -13.41% AES 4.11%
WYNN -8.87% ISRG 21.05% NVDA -9.27% CTSH -9.32%
其中2004年12月30日返回的AAPL = df1中下一列的值