我有这两个变量
df['duration_A'] = ['2 days 04:07:02.497200','2 days 05:07:02.497200','NaT' , '1 days 02:58:17.073600', '1 days 14:33:17.073600', '2 days 10:08:17.073600']
df['duration_B'] = ['1 days 21:08:17.073600','2 days 21:08:17.021600','1 days 17:58:17.077600','1 days 01:01:17.075430','0 days 21:08:17.089600','1 days 21:08:17.045600']
duration_A的数据类型是对象
duration_B的数据类型是timedelta64 [ns]
我想在它们之间绘制一个图形并构建一个数学函数(比如绘制这两个变量之间的图形并确定函数)? 因此,如果我有一个变量,我可以确定另一个变量。
答案 0 :(得分:1)
如果要将duration_A与duration_B进行绘制,可以使用datetime.timedelta.total_seconds()将数据转换为数值,然后相互绘制值。根据您所写的内容,我假设您的数据类型为datetime.timedelta。我不打算在你的例子中对NaT做任何事情 - 你可以选择删除它们,用虚拟值填充它们,或者在你发现最佳时插入它们。
import datetime
from matplotlib import pylot as plt
data = pd.DataFrame(data={'A': [datetime.timedelta(days=2, hours=4, minutes=7, seconds=2.49700), datetime.timedelta(days=2, hours=5, minutes=7, seconds=2.4972)],'B': [datetime.timedelta(days=1, hours=21, minutes=8, seconds=17.07360), datetime.timedelta(days=2, hours=21, minutes=8, seconds=17.0216)]})
data['A_seconds'] = data['A'].apply(lambda x: x.total_seconds())
data['B_seconds'] = data['B'].apply(lambda x: x.total_seconds())
plt.plot(ex['A_seconds'], ex['B_seconds'])
获得绘图后,您可以使用适合模型的任何方法 - 例如,如果它看起来是线性的,则可以使用像statsmodels这样的包运行回归。