如何从每日 (FRED) 报价中找到汇率的季末值?
How to find end of quarter values of exchange rates from daily (FRED) quotes?
我正在使用 FRED 下载五种货币的外汇汇率,请参阅下面的代码。
如何获取季末(年、半年)值?
import pandas as pd
pd.core.common.is_list_like = pd.api.types.is_list_like
import pandas_datareader.data as pdr
from datetime import datetime
start = datetime(2012, 1, 1)
end = datetime(2018, 6, 30)
# NOK DKK Swed GBP Euro
fx = pdr.get_data_fred(['DEXNOUS', 'DEXDNUS', 'DEXSDUS' , 'DEXUSUK', 'DEXUSEU'], start=start, end=end)
fx.columns = ['NOK', 'DKK', 'SEK', 'GBP', 'EUR']
fx.dropna(inplace=True)
我尝试了第 4 季度的 resample('A-DEC').mean()
,但我无法将这些值与 FRED 的每日值相匹配。
问题是您采用的是平均值而不是使用四分之一重采样。
首先创建一个模拟系列:
periods = 10000
my_index = pd.date_range('2016-07-01', periods=periods, freq='D')
data = np.random.randint(100,1000,periods)
orig_ts = pd.Series(data=data, index=my_index, name='daily rates')
对其重新采样,以便从该月的最后一个工作日获取数据。仅在最后一天使用 resample('Q')。
ts=orig_ts.resample('BQ').backfill()
print(ts.head())
2016-09-30 173.0
2016-12-30 243.0
2017-03-31 209.0
2017-06-30 124.0
2017-09-29 817.0
Freq: BQ-DEC, Name: daily rates, dtype: float64
检查准确性:
print(orig_ts.get_value('2016-09-30'))
Output: 173
您可以获得一个范围的值并在本地计算最高价、最低价等。
我正在使用 FRED 下载五种货币的外汇汇率,请参阅下面的代码。
如何获取季末(年、半年)值?
import pandas as pd
pd.core.common.is_list_like = pd.api.types.is_list_like
import pandas_datareader.data as pdr
from datetime import datetime
start = datetime(2012, 1, 1)
end = datetime(2018, 6, 30)
# NOK DKK Swed GBP Euro
fx = pdr.get_data_fred(['DEXNOUS', 'DEXDNUS', 'DEXSDUS' , 'DEXUSUK', 'DEXUSEU'], start=start, end=end)
fx.columns = ['NOK', 'DKK', 'SEK', 'GBP', 'EUR']
fx.dropna(inplace=True)
我尝试了第 4 季度的 resample('A-DEC').mean()
,但我无法将这些值与 FRED 的每日值相匹配。
问题是您采用的是平均值而不是使用四分之一重采样。
首先创建一个模拟系列:
periods = 10000
my_index = pd.date_range('2016-07-01', periods=periods, freq='D')
data = np.random.randint(100,1000,periods)
orig_ts = pd.Series(data=data, index=my_index, name='daily rates')
对其重新采样,以便从该月的最后一个工作日获取数据。仅在最后一天使用 resample('Q')。
ts=orig_ts.resample('BQ').backfill()
print(ts.head())
2016-09-30 173.0
2016-12-30 243.0
2017-03-31 209.0
2017-06-30 124.0
2017-09-29 817.0
Freq: BQ-DEC, Name: daily rates, dtype: float64
检查准确性:
print(orig_ts.get_value('2016-09-30'))
Output: 173
您可以获得一个范围的值并在本地计算最高价、最低价等。