【发布时间】:2021-12-21 01:10:49
【问题描述】:
我有一个函数:generateID,但我对这一行有疑问:
data_df['id_cont'] = data_df.apply(lambda row:row['product_name']+'-'+row['hour_shift'].strftime('%Y-%m-%d %H:%M:%S'),axis=1)
由于这个数据转换问题,我有这个错误:
TypeError: +: 'float' 和 'str' 的操作数类型不受支持
这是我的代码:
def generateID(self,outputMode,data_df):
data_df = self._preGenerateID(outputMode,data_df)
if outputMode.getModeCB() == CONST_MODE_CONT:
data_df['id_cont'] = data_df.apply(lambda row:row['equipement']+'-'+row['product_name']+'-'+row['hour_shift'].strftime('%Y-%m-%d %H:%M:%S'),axis=1)
else:
data_df['first_date'] = data_df.groupby(['equipement'])['local_time'].transform('min')
data_df['year'] = pd.DatetimeIndex(data_df['first_date']).year
data_df['year'] = data_df['year'].astype(str)
data_df['id_batch'] = data_df.apply(lambda row:row['equipement']+'-'+row['product_name']+'-'+row['year'],axis=1)
return data_df
【问题讨论】: