Python /:';str';和';str';PandasDataframe中的操作出错
我希望运行此小代码,但它显示:Python /:';str';和';str';PandasDataframe中的操作出错,python,pandas,dataframe,Python,Pandas,Dataframe,我希望运行此小代码,但它显示: 'unsupported operand type(s) for /: 'str' and 'str'' 我怎样才能解决这个问题 以下是数据帧的图片: import pandas as pd btc = pd.read_csv('btc.csv',index_col='Date',parse_dates=True) btc = btc['Price'] spy = pd.read_csv('spy.csv',index_col='Date',parse_dat
'unsupported operand type(s) for /: 'str' and 'str''
我怎样才能解决这个问题
以下是数据帧的图片:
import pandas as pd
btc = pd.read_csv('btc.csv',index_col='Date',parse_dates=True)
btc = btc['Price']
spy = pd.read_csv('spy.csv',index_col='Date',parse_dates=True)
spy = spy['Price']
stocks = pd.concat([btc,spy],axis=1).dropna()
stocks.columns = ['btc','spy']
stocks.pct_change(1).corr()
也许您的计算机已设置为以“,”作为十进制分隔符而不是“.”来读取数字。尝试:
import pandas as pd
btc = pd.read_csv('btc.csv',index_col='Date',parse_dates=True, decimal='.', thousands=',')
btc = btc['Price']
spy = pd.read_csv('spy.csv',index_col='Date',parse_dates=True, decimal='.', thousands=',')
spy = spy['Price']
stocks = pd.concat([btc,spy],axis=1).dropna()
stocks.columns = ['btc','spy']
stocks.pct_change(1).corr()
您的列
spy
具有对象
数据类型,因为它包含(不允许)数千个分隔符,
:
stocks.head()
这样做:
stocks["spy"] = stocks.spy.str.replace(",", "").astype(float)
就在您最后一个命令之前
stocks.pct_change(1).corr()
谢谢您的帮助。但是代码仍然无法运行。您能否显示整个错误消息以及'stocks'df中列的数据类型?
stocks.dtypes
btc float64
spy object
dtype: object
stocks["spy"] = stocks.spy.str.replace(",", "").astype(float)