timedelta64[ns] -> 未来警告:传递timedelta64-dtype数据已被弃用,将在未来版本中引发TypeError错误。

8
假设df ['time']timedelta64 [ns]类型,df ['a']df ['b'] 都是float64类型,这两个序列可以像这样绘制:
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

那么在 matplotlib 中,应该使用什么方法来将 timedelta64[ns] 格式的时间显示为人类可读时间,而不是使用 pd.to_datetime 方法呢?

1
pd.to_timedelta? - Quang Hoang
@QuangHoang import pandas as pd - gies0r
1个回答

2

当我使用pandas从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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接