源代码:
trnmdf['SliceID'] = trnmdf[['PatientID', 'SeriesInstanceUID', 'StudyInstanceUID']].apply(lambda x: '{}__{}__{}'.format(*x.tolist()), 1)
这句的意思是把trnmdf中的每行数据的PatientID,SeriesInstanceUID,StudyInstanceUID三个索引对应的字符连接成'{}__{}__{}'这种形式,并赋给trnmdf['SliceID']。这样子每个切片就可以有唯一的一个索引表示了。
lambda
是一个匿名函数。用于实现简单的功能。
lambda x: '{}__{}__{}'.format(*x.tolist())
首先这是一个函数,x表示 输入,函数表达式是'{}__{}__{}'.format(*x.tolist())。
*星号表示收集所有参数。比如这里输入只有 一个x,但是参数却是有['PatientID', 'SeriesInstanceUID', 'StudyInstanceUID']这三个。不加*只会把trnmdf['PatientID']当成x。
apply
表示把前面的参数用于到后面的函数中。这里就是把trnmdf[['PatientID', 'SeriesInstanceUID', 'StudyInstanceUID']]中的三个参数应用到lambdax: '{}__{}__{}'.format(*x.tolist())
apply()函数一般默认axis=1,表示是一维。会把一行数据作为Series的数据 结构传入给自己实现的函数中。
看完点个赞吧,三连更好哈哈哈哈哈。