我对python比较陌生。我尝试导入2只股票的csv。当我运行下面的代码时,我得到了这个错误:
TypeError: unsupported operand type(s) for /: 'str' and 'str'
这是否意味着它将价格视为一个字符串?如何确保在导入时将其视为数字
import pandas as pd
stock1 = pd.read_csv('stock1.csv', parse_dates=['Date', 'Price'])
stock2 = pd.read_csv('stock2.csv', parse_dates=['Date', 'Price'])
for i in (stock1,stock2):
i['Norm return'] = i['Price'] / i.iloc[0]['Price']
pd.read_csv
将尝试推断格式,但有时无法。您可以通过dtype
参数给出类型提示,如下所示:也许把它从
parse_dates
中拉出来就足够了。通过写parse_dates=['Date', 'Price']
你告诉熊猫试着把价格定为日期您还可能会遇到一个错误,这可能是pandas最初不将列读取为float的原因。在.csv中使用像“NAN”这样的字符串可以做到这一点。在https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html中,您可以设置大量其他参数来处理此类场景
我认为您的价格中有“$”符号,因此首先,您必须从价格中删除“$”
您正在尝试分割字符串。尝试将它们转换为数字类型,如float:
相关问题 更多 >
编程相关推荐