Python 如何根据消费者指数调整黄金价格?

Python 如何根据消费者指数调整黄金价格?,python,pandas,data-analysis,Python,Pandas,Data Analysis,我使用quandl获得黄金的历史价格和消费者指数。并将指数改为年度数据,但黄金历史价格为月度数据。我想根据“消费者价格指数”年度数据调整黄金价格月度数据。我怎么做 import pandas as pd import quandl start=pd.to_datetime("1970-10-31") end=pd.datetime.now() gold= quandl.get("WGC/GOLD_DAILY_USD",start_date=start, end_date=end, auth

我使用quandl获得黄金的历史价格和消费者指数。并将指数改为年度数据,但黄金历史价格为月度数据。我想根据“消费者价格指数”年度数据调整黄金价格月度数据。我怎么做

import pandas as pd
import quandl


start=pd.to_datetime("1970-10-31")
end=pd.datetime.now()

gold= quandl.get("WGC/GOLD_DAILY_USD",start_date=start, end_date=end, authtoken="F51kbhqij4J1o73V5vXT")
index= quandl.get("RATEINF/CPI_USA",start_date=start, end_date=end, authtoken="F51kbhqij4J1o73V5vXT")#RATEINF/CPI_USA

gold.rename(columns={"Value":"Close"},inplace=True)
gold.head()
index.resample("Y").mean()    # get yearly consumer index data to adjust the monthly price of gold

听起来最好的方法是合并年度和月度数据,然后继续计算

(为了可读性,我将您的“索引”数据框称为“消费者”,因为在访问每个数据框的日期时间索引时,它可能会变得混乱。)

从:

consumer = consumer.resample("y").mean()
首先需要从datetime索引中提取年份:

gold = gold.reset_index()
consumer = consumer.reset_index()

gold['year'] = gold['Date'].dt.year
consumer['year'] = consumer['Date'].dt.year
然后在年份上合并两个数据帧:

gold = gold.merge(consumer,on='year')
并将索引返回到最新时间:

gold = gold.set_index('Date')
这将使年度消费者指数信息与月度黄金定价信息相匹配,这将允许您执行您需要的任何调整

例如,如果要将两者分开:

gold['adjusted'] = gold['Close'] / gold['Value']

请不要在图像中共享信息。这里的确切问题是什么?已经描述了如何将黄金月价格除以“index=index.resample(“Y”).mean()”列中消费者价格指数的不同值。对于我们这些不熟悉quandl API的人,这里的月价格在哪里?一些更具描述性的变量名可能会有所帮助。