У меня есть программа python, в которой я читаю файл csv на кадре данных Pandas. Затем я хочу построить значение моего датчика с datetime в чистом формате. Мой код дает ошибку ValueError: данные времени '2017/02/17' не соответствует формату '% Y /% m /% d% H:% M:% S.% f. Мой код и некоторые строки из dataframe ниже:Построение даты и времени с использованием Pandas
Код:
import pandas as pd
from datetime import datetime
import csv
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
headers = ['Sensor Value','Date','Time']
df = pd.read_csv('C:/Users\Lala Rushan\Downloads\DataLog.CSV', parse_dates= {'Datetime': [1,2]},names=headers)
print (df)
df['Datetime'] = df['Datetime'].map(lambda x: datetime.strptime(str(x), "%y/%m/%d , %H:%M:%S.%f"))
#datetime.strptime(df['Datetime'],"%Y/%m/%d %H:%M:%S.%f")
x = df['Datetime']
y = df['Sensor Value']
# plot
plt.plot(x,y)
# beautify the x-labels
plt.gcf().autofmt_xdate()
plt.show()
DataFrame:
Datetime Sensor Value
0 2017/02/17 19:06:17.188 2
1 2017/02/17 19:06:22.360 72
2 2017/02/17 19:06:27.348 72
3 2017/02/17 19:06:32.482 72
4 2017/02/17 19:06:37.515 74
5 2017/02/17 19:06:42.580 70
6 2017/02/17 19:06:47.660 72
Как я могу решить эту ошибку? Я новичок на python, поэтому прошу прощения за любые основные ошибки.
Это говорит вам, что ваша дата не соответствует строке формата. Вопрос заключается в том, почему ошибка говорит о том, что строка даты «2017/02/17» «но ваш размещенный фреймворк выглядит как« 2017/02/17 19: 06: 17.188 »(также не отмечайте запятую) или аналогичный. –
Да, это то, о чем я думаю и застрял. можете ли вы изменить код для работы? Я новичок в python. – rushan
Просто используйте парсер datetime 'pandas':' df ['Datetime'] = pd.to_datetime (df ['Datetime']) 'вместо того, чтобы пытаться использовать' map' для анализа каждого значения строки. Это должно анализировать все поле в 'datetime', если формат согласован во всем. – Abdou