【发布时间】:2013-10-01 21:51:46
【问题描述】:
我正在寻找一种方法来使用 pandas 进行列操作(例如在 excel 中),而无需遍历环境的每一行。我正在处理可能非常大的 pd.DataFrame 对象,并希望尽可能使用函数。
我过去曾使用映射 lambda 函数来做类似的事情:
df['a'] = df['a'].map(lambda x: int(str(int(x))[:-1])) #remove the last digit in column 'a'
是否可以映射类似于以下 lambda 函数的东西来模仿 SQL 合并函数?
lambda x,y: x if x else y
其中 x 和 y 都是列(类似于第一个示例),我想使用 lambda 生成第三个列对象。
【问题讨论】:
-
您希望
y参数是什么?map的全部意义在于它将每个值一个接一个地传递给您的函数。 -
Series和DataFrames 的where方法执行向量化的x if x else y类型计算。 -
非常感谢!假设我想要任何多列函数?