理解复杂的单行代码大市场销售数据集分析

2024-04-19 18:38:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试从这个website学习分析大商场销售数据集。我无法解码一行有点复杂的代码。我试着去理解它,去神秘化它,但我没能理解。请帮我理解这句话

[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)

事先非常感谢。快乐编码


Tags: 数据lambda代码dfwebsite解码itemavg
2条回答
df['Item_Visibility_MeanRatio'] 

这是新的列名

= df.apply(lambda x: 

将函数应用于数据帧

x['Item_Visibility'] 

从原始数据框中获取Item_可见性列

/visibility_item_avg['Item_Visibility'][visibility_item_avg.index == x['Item_Identifier']][0] 

在新数据透视表中的Item_可见性列中进行分割,其中Item_标识符等于原始数据帧中的Item_标识符

,axis=1) 

沿列应用(水平)

.astype(float) 

转换为浮点型

另外,看起来.apply在您附加的链接上使用了很多。应该注意的是,apply通常是一种缓慢的方式,通常有其他方法可以避免使用apply

让我们一步一步地进行:

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']的索引。这将生成一个列表。然后它将得到visibility_item_avg['Item_Visibility']中的元素,其索引等于上一部分中找到的内容[0]最后是查找结果数组的第一个元素。

axis=1

1:将函数应用于每行

astype(float)

这用于将值类型更改为浮动。 为了使代码易于获取,您总是可以将其拆分为单独的部分,并一点一点地进行消化

为了使代码更快,可以进行矢量化,而不是应用lambda。 请参阅链接here

相关问题 更多 >