Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么我不能把这两个变量分开?_Python_Pandas_Csv_Division - Fatal编程技术网

Python 为什么我不能把这两个变量分开?

Python 为什么我不能把这两个变量分开?,python,pandas,csv,division,Python,Pandas,Csv,Division,我对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_

我对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']

您正在尝试分割字符串。尝试将它们转换为数字类型,如float:

for i in (stock1,stock2):
    i["Price"] = i["Price"].astype(float)
    i['Norm return'] = i['Price'] / i.iloc[0]['Price']

您正在尝试分割字符串。尝试将它们转换为数字类型,如float:

for i in (stock1,stock2):
    i["Price"] = i["Price"].astype(float)
    i['Norm return'] = i['Price'] / i.iloc[0]['Price']

我认为你的价格中有“$”符号,因此首先,你必须从价格中删除“$”。

我认为你的价格中有“$”符号,因此首先,你必须从价格中删除“$”。

pd.read\u csv
将尝试推断格式,但有时无法。您可以通过
dtype
参数给出类型提示,如下所示:

stock1 = pd.read_csv('stock1.csv', parse_dates=['Date'], dtype={'Price': float})
不过,也许把它从
parse_dates
中拉出来就足够了。通过写
parse_dates=['Date','Price']
你告诉pandas试着把价格定为日期


您还可能会遇到一个错误,这可能是pandas最初不将列读取为float的原因。在.csv中使用像“NAN”这样的字符串可以做到这一点。此外,您还可以设置大量其他参数来处理这种情况。

pd.read\u csv
将尝试推断格式,但有时无法。您可以通过
dtype
参数给出类型提示,如下所示:

stock1 = pd.read_csv('stock1.csv', parse_dates=['Date'], dtype={'Price': float})
不过,也许把它从
parse_dates
中拉出来就足够了。通过写
parse_dates=['Date','Price']
你告诉pandas试着把价格定为日期


您还可能会遇到一个错误,这可能是pandas最初不将列读取为float的原因。在.csv中使用像“NAN”这样的字符串可以做到这一点。此外,您还可以设置大量其他参数来处理这种情况。

您不能分割字符串。您必须首先将它们转换为数字。正如错误消息所说,这两个变量都是字符串。您可以通过使用int(变量)或float(变量)转换使它们成为整数或浮点。例如,
i[“Norm return']=float(i['Price'])/float(i.iloc[0]['Price])
@MishaMelnyk当我尝试此操作时,它说:TypeError:无法将序列转换为字符串。您必须首先将它们转换为数字。正如错误消息所述,这两个变量都是字符串。您可以使用int将它们转换为整数或浮点(变量)或浮点(变量)转换。例如,
i[“Norm return']=float(i['Price'])/float(i.iloc[0]['Price])
@MishaMelnyk当我尝试此操作时,它说:TypeError:无法将序列转换为为什么它首先将其作为字符串加载?在csv中,它是一个数字。我尝试了建议,得到了以下结果:AttributeError:'str'对象没有属性'astype',我已经更新了我的解决方案,因此如果您的
价格
值没有任何非数字c字符,它应该可以工作。“为什么它首先将其作为字符串加载?在csv中,它是一个数字。”不;在CSV中,它是一个字符串,保证。在CSV中,所有内容都是字符串。磁盘上的文件只存储原始数据,没有类型;文件格式指定类型,但CSV将所有内容都视为字符串。对这些字符串的任何进一步解释取决于使用CSV的内容。在您的情况下,这是您的程序,它需要具有实际的检查表示数字的文本并将其替换为实际数字的代码。如此答案中提供的。为什么首先将其作为字符串加载?在csv中,它是一个数字。我尝试了建议的方法,得到了以下结果:AttributeError:'str'对象没有属性'astype'。我已更新了我的解决方案,因此如果您的
价格值没有任何非数字字符,它应该可以工作。“为什么首先要将其作为字符串加载?在csv中,它是一个数字。”不;在CSV中,它是一个字符串,保证。在CSV中,所有内容都是字符串。磁盘上的文件只存储原始数据,没有类型;文件格式指定类型,但CSV将所有内容都视为字符串。对这些字符串的任何进一步解释取决于使用CSV的内容。在您的情况下,这是您的程序,它需要具有实际的检查表示数字的文本并将其替换为实际数字的代码。如本答案中提供的。我的价格中没有$。它只是一个十进制数字。我的价格中没有$。它只是一个十进制数字。