绘制Dataframe列 - 日期时间

时间:2016-07-08 19:36:03

标签: python datetime pandas matplotlib dataframe

我有一个日期时间列,时间增量非常随机,格式为:

time
2016-07-08 11:29:30
2016-07-08 11:30:02

现在我将其转换为datetime:

df['time2'] = pd.to_datetime(df['time'])

然后我想用matplotlib绘制它,但它不起作用:

plt.plot(df.['time'],df['y'])

我已经尝试将其转换为int,但是在绘图时我无法弄清楚如何格式化

 df['time_int'] = df['time2'].astype(np.int64)

任何帮助都会很棒!

1 个答案:

答案 0 :(得分:5)

我认为您可以使用Series.plot,因此请从time列开始set_index

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'y': {0: 1, 1: 2, 2: 4}, 
                   'time': {0: '2016-07-08 11:29:30', 1: '2016-07-08 11:30:02', 2: '2016-07-08 11:31:52'}})

print (df)
                  time  y
0  2016-07-08 11:29:30  1
1  2016-07-08 11:30:02  2
2  2016-07-08 11:31:52  4

df['time'] = pd.to_datetime(df.time)

print (df.set_index('time').y)
time
2016-07-08 11:29:30    1
2016-07-08 11:30:02    2
2016-07-08 11:31:52    4
Name: y, dtype: int64

df.set_index('time').y.plot()
plt.show()

graph

另一种解决方案是:

df['time'] = pd.to_datetime(df.time)
df.plot(x='time', y='y')
plt.show()