Я пытаюсь создать график из двух столбцов в файле .csv. Столбец для оси x имеет краткий формат даты мм / дд / гггг, тогда как столбец для оси y соответствует данным измерения поглощения в виде обычных числовых значений. Исходя из этого, я также пытаюсь собрать линию линейной регрессии на этом графике. Вот что у меня есть:
mydateparser = lambda x: datetime.strptime(x, '%m/%d/%y')
df = (pd.read_csv('calibrationabs200211.csv', index_col=[], parse_dates=[0],
infer_datetime_format=True, date_parser=mydateparser))
if mydateparser == '%m/%d/%y':
print('Error')
else:
mydateparser = float(mydateparser)
plt.figure(figsize=(15,7.5))
x = df.iloc[:, 0].values.reshape(-1, 1)
y = df.iloc[:, 1].values.reshape(-1, 1)
linear_regressor = LinearRegression()
linear_regressor.fit(x, y)
y_pred = linear_regressor.predict(y)
plt.scatter(x, y, color='teal')
plt.plot(x, y_pred, color='teal')
plt.show()
Однако я получаю сообщение об ошибке:
TypeError Traceback (most recent call last)
<ipython-input-272-d087bdc00150> in <module>
12 print('Error')
13 else:
---> 14 mydateparser = float(mydateparser)
15
16 plt.figure(figsize=(15,7.5))
TypeError: float() argument must be a string or a number, not 'function'
Более того, если я закомментирую оператор If, я получаю график, , но с ошибочной линейной регрессией. Я довольно новичок в python, matplotlib и pandas, поэтому любая помощь или обратная связь очень важны. Спасибо!