使用Pandas绘制日期时间

时间:2017-02-21 23:31:50

标签: python pandas matplotlib

我有一个python程序,其中我将csv文件读取到Pandas数据帧上。然后我想以干净的格式用datetime绘制我的传感器值。我的代码提供了错误 ValueError:time data' 2017/02/17 39#;不符合格式'%Y /%m /%d%H:%M:%S。%f 。 我的代码和数据框中的一些行如下:

代码:

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

我该如何解决这个错误?我是对蟒蛇的新手,所以请原谅任何基本的错误。

1 个答案:

答案 0 :(得分:3)

您无需分割日期和时间。下面的代码适合我。

import pandas as pd
from datetime import datetime
import csv
import matplotlib.pyplot as plt

df = pd.read_csv('test.txt')
print (df)

df['Datetime'] = df['Datetime'].map(lambda x: datetime.strptime(str(x), "%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()

enter image description here