python – 理解pandas中的lambda函数

我正在尝试解决
Python课程的问题,发现有人在github中为同一个问题实现了解决方案.我只是想了解github中给出的解决方案.

我有一个名为Top15的pandas数据框,有15个国家,数据框中的一列是’HighRenew’.此列存储每个国家/地区使用的可再生能源的百分比.我的任务是将’HighRenew’列中的列值转换为布尔数据类型.

如果特定国家/地区的价值高于所有15个国家/地区的可再生能源中位数百分比,那么我应将其编码为1,否则应将其编码为0.“HighRenew”列将从数据框中切割为系列,即复制如下.

Country
China                  True
United States         False
Japan                 False
United Kingdom        False
Russian Federation     True
Canada                 True
Germany                True
India                 False
France                 True
South Korea           False
Italy                  True
Spain                  True
Iran                  False
Australia             False
Brazil                 True
Name: HighRenew, dtype: bool

github解决方案分3个步骤实现,其中我理解前2个但不是最后一个使用lambda函数的解决方案.有人可以解释这个lambda函数是如何工作的吗?

median_value = Top15['% Renewable'].median()
Top15['HighRenew'] = Top15['% Renewable']>=median_value
Top15['HighRenew'] = Top15['HighRenew'].apply(lambda x:1 if x else 0)

最佳答案 我认为应用是引擎盖下的循环,更好的是使用矢量化
astype – 它将True转换为1而False转换为0:

Top15['HighRenew'] = (Top15['% Renewable']>=median_value).astype(int)
lambda x:1 if x else 0

表示具有条件的匿名函数(lambda函数) – 如果True返回1,则返回0.

有关lambda函数检查this answers的更多信息.

点赞