我一直在努力学习分析大商场的销售数据集从这个网站。我无法解码一行代码,这是有点复杂。我试着去理解它的神秘性,但我无法做到。请帮我理解这句话
In 26
df['Item_Visibility_MeanRatio'] = df.apply(lambda x: x['Item_Visibility']/visibility_item_avg['Item_Visibility'][visibility_item_avg.index == x['Item_Identifier']][0],axis=1).astype(float)先谢谢你。快乐编码
发布于 2020-07-10 02:14:30
df['Item_Visibility_MeanRatio'] 这是新的列名
= df.apply(lambda x: 将函数应用于数据帧
x['Item_Visibility'] 从原始数据中获取Item_Visibility列
/visibility_item_avg['Item_Visibility'][visibility_item_avg.index == x['Item_Identifier']][0] 除以新透视表中的Item_Visibility列,其中Item_Identifier等于原始数据table中的Item_Identifier
,axis=1) 沿列(水平方向)应用
.astype(float) 转换为浮动类型
而且,看起来.apply在您所附加的链接上使用了很多。应该注意的是,应用通常是一种缓慢的做事方式,而且通常会有避免使用apply的替代方法。
发布于 2020-07-10 02:17:19
让我们一步一步地深入研究:
df['Item_Visibility_MeanRatio']这一部分是在数据框架中创建一个列,它的名称是Item_Visibility_MeanRatio。
df.apply(lambda...)沿数据帧的轴应用函数。
x['Item_Visibility']它是从数据帧中的Item_Visibility列中获取数据。
visibility_item_avg['Item_Visibility'][visibility_item_avg.index == x['Item_Identifier']][0]本部分发现visibility_item_avg索引等于df['Item_Identifier'].This的索引将导致列表。然后,它将得到visibility_item_avg['Item_Visibility']中的元素,该元素的索引与前一部分中的值相等。最后的[0] 是查找结果数组的第一个元素.
axis=11:将函数应用于每一行。
astype(float)这是为了将值类型更改为浮动。为了使代码易于抓取,您始终可以将其拆分为各个部分,并一点一点地消化它。
为了使代码更快,您可以进行矢量化,而不是应用lambda。请参考链接这里。
https://stackoverflow.com/questions/62826161
复制相似问题