Как использовать scipy с datetime без правильного форматирования? - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь визуализировать набор данных и его среднее значение с помощью scipy.interpolate и matplotlb.Но когда я пытаюсь запустить код, который должен прекрасно работать, он выдает мне ошибку:

  File "mittel.py", line 19, in <module>
    p1 = polyfit(x, y, 1)
  File "C:\Users\simon\AppData\Local\Programs\Python\Python37-32\lib\site-packages\numpy\lib\polynomial.py", line 589, in polyfit
    x = NX.asarray(x) + 0.0
TypeError: can only concatenate str (not "float") to str

И код:

import time as ti
import pandas as pd 
from numpy import *
from matplotlib import pyplot as plt 
import csv
from sklearn import preprocessing, svm
from sklearn.model_selection import train_test_split
from scipy.interpolate import * 

data = pd.read_csv("includes\\csv.csv")

x = array(data["day"])
y = array(data["balance"])

p1 = polyfit(x, y, 1)

print(p1)
plt.plot(x, y, "o")
plt.plot(x, polyval(p1, x), "-r")

plt.show()

Я уже пытался преобразовать хмассив в строку с

x = str(x) 

, но это никак не помогло.

Мой CSV-файл выглядит так:

balance,day

242537,28-5
246362,29-5
246659,30-5
246844,31-5

Знаете ли вы, почему эта ошибка происходит

1 Ответ

0 голосов
/ 19 июня 2019
x = NX.asarray(x) + 0.0

TypeError: может объединять только str (не "float") в str

Как вы можете видеть здесь, + интерпретируется как объединение двух строк, тогда как вам нужно добавить float. Поэтому вместо преобразования x в строковый объект попробуйте преобразовать x в объект с плавающей точкой:

x = float(array(data["day"]))
y = float(array(data["balance"]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...