2024-10-02 18:18:21 发布
网友
我想将lambda函数应用于多个列,但我不确定如何循环遍历这些列。基本上,我有Column1-Column50,我希望在每个列上发生完全相同的事情,但是我不知道如何在下面的x.column中遍历它们。有办法吗?你知道吗
for column in df: df[column] = df.apply(lambda x: x.datacolumn * x.datacolumn2 if x.column >= x.datacolumn3, axis=1)
首先,您缺少else分支(当if条件为False时该怎么办?),对于访问Panda的Series(lambda函数的输入)元素,可以使用索引。你知道吗
else
if
False
Series
例如,设置为0,如果条件不成立:
0
for column in df: df[column] = df.apply(lambda x: x[0] * x[1] if x[0] >= x[2] else 0, axis=1)
你在找像map()这样的东西吗?map()将函数应用于列表(或其他iterable)中的每个项,并返回包含结果的列表。你知道吗
map()
下面是an eloquent explanation它的工作原理(比我能写的要好得多)。你知道吗
然而,在某一点上,声明普通函数和/或使用for循环可能更容易。你知道吗
最简单的方法可能是将每一列提取为一个列表,执行操作,然后将结果写回dataframe。你知道吗
for column in df: temp = [x for x in df.loc[:, column]] #pull a list out using loc if temp[0] > temp[2]: temp[0] = temp[0] * temp[1] df.loc[:, column] = temp #overwrite original df column
如果不满足上述条件,则数据保持不变。你知道吗
首先,您缺少
else
分支(当if
条件为False
时该怎么办?),对于访问Panda的Series
(lambda函数的输入)元素,可以使用索引。你知道吗例如,设置为
0
,如果条件不成立:你在找像
map()
这样的东西吗?map()
将函数应用于列表(或其他iterable)中的每个项,并返回包含结果的列表。你知道吗下面是an eloquent explanation它的工作原理(比我能写的要好得多)。你知道吗
然而,在某一点上,声明普通函数和/或使用for循环可能更容易。你知道吗
最简单的方法可能是将每一列提取为一个列表,执行操作,然后将结果写回dataframe。你知道吗
如果不满足上述条件,则数据保持不变。你知道吗
相关问题 更多 >
编程相关推荐