为了账号安全,请及时绑定邮箱和手机立即绑定

ufunc“减法”不能使用类型为 dtype('<M8[ns]') 和 dtype

ufunc“减法”不能使用类型为 dtype('<M8[ns]') 和 dtype

哔哔one 2023-07-27 15:45:14
当我解决这个错误时,有一些函数可以解决这个问题,ufunc&ldquo;subtract&rdquo;不能使用类型为 dtype ('<M8 [ns]') 和 dtype ('float64') 的操作数,或者该程序工作的另一种方式并给出我以下数据:import pandas as pdmaint = pd.read_csv('D:/IC/teste_disseracao/banco_de_dados_PdM/PdM_maint.csv')telemetry = pd.read_csv('D:/IC/teste_disseracao/banco_de_dados_PdM/PdM_telemetry.csv')telemetry['datetime'] = pd.to_datetime(telemetry['datetime'], format="%Y-%m-%d %H:%M:%S")maint['datetime'] = pd.to_datetime(maint['datetime'], format="%Y-%m-%d %H:%M:%S")import numpy as np#transforma o erro em colunacomp_rep = pd.get_dummies(maint)comp_rep.columns = ['datetime', 'machineID', 'comp1', 'comp2', 'comp3', 'comp4']#combinar erros para uma determinada m&aacute;quina em uma determinada hora comp_rep = comp_rep.groupby(['machineID', 'datetime']).sum().reset_index()#adicione pontos de tempo onde nenhum componente foi substitu&iacute;do comp_rep = telemetry[['datetime', 'machineID']].merge(comp_rep,                                                      on=['datetime', 'machineID'],                                                      how='outer').fillna(0).sort_values(by=['machineID', 'datetime'])components = ['comp1', 'comp2', 'comp3', 'comp4']for comp in components:    #converte o indicador para a data mais recente de altera&ccedil;&atilde;o do componente     comp_rep.loc[comp_rep[comp] < 1, comp] = None    comp_rep.loc[-comp_rep[comp].isnull(), comp] = comp_rep.loc[-comp_rep[comp].isnull(), 'datetime']     #forward-fill a data mais recente de altera&ccedil;&atilde;o de componente     comp_rep[comp] = comp_rep[comp].fillna(method='ffill')    #remove as datas em 2014 (pode ter NaN ou datas de mudan&ccedil;a de componente futura)  comp_rep = comp_rep.loc[comp_rep['datetime'] > pd.to_datetime('2015-01-01')]for comp in components:    comp_rep[comp] = (comp_rep['datetime'] - comp_rep[comp]) / np.timedelta64(1, 'D')    print(comp_rep.head())
查看完整描述

1 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

试试这个,它对我有用:

for comp in components:
    comp_rep[comp] = (comp_rep["datetime"] - pd.to_datetime(comp_rep[comp])) / np.timedelta64(1, "D") comp_rep.head()


查看完整回答
反对 回复 2023-07-27
  • 1 回答
  • 0 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信