我正在按照时间序列分析的教程进行操作 - 但他们会为您完成数据框工作的所有加载和清理工作。
为了自己学习并在那个部分做得更好,我试图使用join函数然后计算两列的变化百分比和相关性。数据分别为SPX.csv和^ TNX.csv - SP500指数基金和债券。
# Import pandas and plotting modules
import pandas as pd
import matplotlib.pyplot as plt
stocks = pd.read_csv('data/SPX.csv', parse_dates=['Date'], index_col='Date')
bonds = pd.read_csv('data/^TNX.csv', parse_dates=['Date'], index_col='Date')
''' #not sure if its something to do with the index_col?
stocks = pd.read_csv('data/SPX.csv')
######
bonds = pd.read_csv('data/^TNX.csv')
'''
stocks.index = pd.to_datetime(stocks.index)
bonds.index = pd.to_datetime(bonds.index)
# Convert the stock index and bond index into sets
set_stock_dates = set(stocks.index)
set_bond_dates = set(bonds.index)
# Take the difference between the sets and print
print(set_stock_dates - set_bond_dates)
stocks_and_bonds = stocks.join(bonds, how='inner')
我们的想法是能够做到以下几点 -
# Compute percent change using pct_change()
returns = stocks_and_bonds.pct_change()
# Compute correlation using corr()
correlation = returns['SP500'].corr(returns['US10Y'])
print("Corelation of stocks and interest rates: ", correlation)
# Make scatter plot
plt.scatter(returns['SP500'], returns['US10Y'])
plt.show()
感谢任何帮助!
答案 0 :(得分:0)
您的错误消息是什么?这有助于确定您遇到的问题。如果您得到类似ValueError: columns overlap but no suffix specified: Index(['Date'], dtype='object')
的内容,那么我认为问题是您的数据框的列名是相同的。要更正此问题,您可以使用df.rename
更改列名称。
它看起来像你这样
Bonds.rename(columns={"Date": "Date_bonds")