:unsupported operand type(s) for -: 'str' and 'str'
TypeError: unsupported operand type(s) for -: 'str' and 'str'
当我运行以下代码时,
面对这个typeerror消息:
1 2 3 4 5 6 7 8 9 10 11 12 13 | df_set= pd.read_excel("DATA_SVM.xlsx") print(df_set.columns) df1= df_set.drop([0]) df= df1.rename(columns={ 'MSCI World ':'Date', 'MSCI WORLD U$ - PRICE/BOOK RATIO':'P/B', 'MSCI WORLD U$ - DIVIDEND YIELD':'YDid', 'NDDUWI':'Price'}) df['Return']=(df['Price'].shift(-1) - df['Price'])/df['Price'] |
我确定这是关于最后一行的内容。我想做的是通过使用fomular(price2-price1)/ price1创建一个新的列" return"。
顺便说一句,它可以由Notebook运行,但是Pycharm中的响应错误。
任何提供线索的人都会感激不尽。
您的"价格"列似乎设置为字符串格式。您首先需要转换为已定义减法的类型(例如float)
1 | df['Price'] = df['Price'].apply(float) |
我发现如果我输入.xlsx而不是csv,则以下行可以工作。
df['Return']=(df['Price'].shift(-1) - df['Price'])/df['Price']
,但仍然尝试找出如何在csv上制作它。文件。我不确定
也许最好改变话题。
是否可以实现另一功能:同一列中下一行的元素减去上一行的元素?