gpt4 book ai didi

python - Python 类型错误 : str and int

转载 作者:行者123 更新时间:2023-12-01 09:00:28 29 4
gpt4 key购买 nike

我在尝试编译代码时收到此错误。我从 xlsx 文件中提取数据并创建了一个数据框,将空值替换为 0,将所有值转换为 sting 以便能够进行散点图,当我尝试显示线性回归的结果时,我收到了此错误。

 TypeError: unsupported operand type(s) for /: 'str' and 'int'

这是我到目前为止所做的代码

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
def predict(x):
return slope * x + intercept
from scipy import stats
xlsxfile = pd.ExcelFile("C:\\Users\\AchourAh\\Desktop\\PL14_IPC_03_09_2018_SP_Level.xlsx")
data = xlsxfile.parse('Sheet1', index_col = None, header = None)
data1 = data.fillna(0) #Replace null values of the whole dataset with 0
data1 = data1.astype(str)
print(data1)
X = data1.iloc[0:len(data1),1]
print(X)
Y = data1.iloc[0:len(data1),2]
print(Y)
axes = plt.axes()
axes.grid()
plt.scatter(X,Y)
slope, intercept, r_value, p_value, std_err = stats.linregress(X, Y)

请注意,我是这方面的初学者。最后一行导致了错误这是数据帧的第一列 COP COR 和 PAUS,我试图对其应用一些线性回归:

 0            PP   SP000045856 COP COR  SP000045856 PAUS   
1 201723 0 2000
2 201724 12560 40060
3 201725 -17760 15040
4 201726 -5840 16960
5 201727 10600 4480
6 201728 0 14700
7 201729 4760 46820

...直到第 27 行

最佳答案

Excel 文件中的数据在第一行包含标题信息,因此设置 header=None 是数据中存在字符串值而不是将其作为列名称的原因。
如果删除 header kwarg

xlsxfile = pd.ExcelFile("C:\\Users\\AchourAh\\Desktop\\PL14_IPC_03_09_2018_SP_Level.xlsx") 
data = xlsxfile.parse('Sheet1', index_col = None)

一切都应该正常,你应该得到一个像这样的数据框:

data

0 PP SP000045856 COP COR SP000045856 PAUS
0 1 201723 0 2000
1 2 201724 12560 40060
2 3 201725 -17760 15040
3 4 201726 -5840 16960
4 5 201727 10600 4480
5 6 201728 0 14700
6 7 201729 4760 46820

但是,您可以通过直接使用 pandas 的 read_excel 函数来完成相同的操作,甚至更短:

data = pd.read_excel('C:\\Users\\AchourAh\\Desktop\\PL14_IPC_03_09_2018_SP_Level.xlsx', 'Sheet1')

然后可以完成您的散点图,例如喜欢

data.plot('SP000045856 COP COR', 'SP000045856 PAUS', 'scatter')

或者也许可读性更好但相同:

data.plot.scatter('SP000045856 COP COR', 'SP000045856 PAUS')

线性回归可以像这样完成

slope, intercept, r_value, p_value, std_err = stats.linregress(data['SP000045856 COP COR'], data['SP000045856 PAUS'])

关于python - Python 类型错误 : str and int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52493079/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com