将纪元时间更改为可读时间并在 python/pandas 中绘图
Changing epoch time to readable time and plotting in python/pandas
我在 .csv 文件中有股票数据。日期列是 unix 时间。
如何将整列转换为可读日期?另外,如何将 x 轴设置为日时间而不是秒数?对此很陌生..
RBZ 一个 day.csv 看起来像这样:
RBZ csv data
df = pd.read_csv('RBZ one day.csv')
fig = plt.figure(figsize=(15,7))
ax1 = plt.subplot2grid((40,40), (0,0), rowspan=40, colspan=40)
ax1.plot(open)
你的日期时间列是 Unix 时间到毫秒,所以用这个来转换它:
df['datetime'] = pd.to_datetime(df['datetime'],unit='ms')
然后您可以使用 ax.plot_date()
:
绘图
ax1.plot_date(df['datetime'],df['open'])
示例:
import matplotlib.dates as mdates
df = pd.DataFrame({'datetime':[1575293880000,1575294180000,1575294420000,1575297000000,1575297060000],
'open':[np.random.random() for i in range(5)]})
fig = plt.figure(figsize=(5,5))
ax = fig.gca()
ax.plot_date(df['datetime'],df['open'])
ax.xaxis.set_major_locator(mdates.HourLocator())
fig.autofmt_xdate()
结果:
我在 .csv 文件中有股票数据。日期列是 unix 时间。 如何将整列转换为可读日期?另外,如何将 x 轴设置为日时间而不是秒数?对此很陌生..
RBZ 一个 day.csv 看起来像这样: RBZ csv data
df = pd.read_csv('RBZ one day.csv')
fig = plt.figure(figsize=(15,7))
ax1 = plt.subplot2grid((40,40), (0,0), rowspan=40, colspan=40)
ax1.plot(open)
你的日期时间列是 Unix 时间到毫秒,所以用这个来转换它:
df['datetime'] = pd.to_datetime(df['datetime'],unit='ms')
然后您可以使用 ax.plot_date()
:
ax1.plot_date(df['datetime'],df['open'])
示例:
import matplotlib.dates as mdates
df = pd.DataFrame({'datetime':[1575293880000,1575294180000,1575294420000,1575297000000,1575297060000],
'open':[np.random.random() for i in range(5)]})
fig = plt.figure(figsize=(5,5))
ax = fig.gca()
ax.plot_date(df['datetime'],df['open'])
ax.xaxis.set_major_locator(mdates.HourLocator())
fig.autofmt_xdate()
结果: