timedelta64 [ns]-> FutureWarning:不建议使用timedelta64-dtype数据,在将来的版本中会引发TypeError

时间:2019-07-04 16:05:52

标签: python python-3.x pandas matplotlib plot

假设df['time']来自timedelta64[ns]类型,并且df['a']df['b']来自float64类型,则可以如下绘制两个系列: / p>

import pandas as pd
import matplotlib.pyplot as plt
fig, axs = plt.subplots(2, sharex=True)

time_values = pd.to_datetime(df['time'])
axs[0].plot(time_values, df['a'])
axs[1].plot(time_values, df['b'])
plt.show()

这可行。.但给出以下警告:

FutureWarning: Passing timedelta64-dtype data is deprecated, will raise a TypeError in a future version

那么在pd.to_datetime中应该使用什么代替timedelta64[ns]来显示matplotlib作为人类可读的时间?

1 个答案:

答案 0 :(得分:0)

使用熊猫从SQL读取时间数据时,我遇到了同样的问题。这两条线解决了我的问题。我试图找到另一个没有成功的直接解决方案。

time_values = df['time'].apply(lambda x: np.nan if pd.isnull(x) else str(x)[-8:])
time_values = pd.to_datetime(time_values, format='%H:%M:%S').dt.time