在python错误中使用join pandas函数

时间:2018-03-21 21:40:45

标签: python pandas join

我正在按照时间序列分析的教程进行操作 - 但他们会为您完成数据框工作的所有加载和清理工作。

为了自己学习并在那个部分做得更好,我试图使用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()

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

您的错误消息是什么?这有助于确定您遇到的问题。如果您得到类似ValueError: columns overlap but no suffix specified: Index(['Date'], dtype='object')的内容,那么我认为问题是您的数据框的列名是相同的。要更正此问题,您可以使用df.rename更改列名称。

它看起来像你这样

Bonds.rename(columns={"Date": "Date_bonds")