(python apply) 在Pandas Lambda函数中使用Apply,有多个if语句
在Pandas中,应用lambda与if语句的结合,可以进行更复杂的数据处理。在Pandas中,我们经常使用apply函数与lambda函数一起使用,对数据集进行列级或行级的操作。
以下是一个简单的示例:
假设我们有一个DataFrame:
import pandas as pd
df = pd.DataFrame({
'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'bar'],
'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
'C': [1, 2, 3, 4, 5, 6, 7, 8],
'D': [10, 20, 30, 40, 50, 60, 70, 80]
})
假如我们想基于列’B’的值来创建一个新的列’E’,如果’B’列的值为’one’,’E’列的值为1,如果’B’列的值为’two’,’E’列的值为2,其他情况下,’E’列的值为3。
首先,我们需要定义这个条件:
conditions = [
(df['B'] == 'one'), # 'B'列值为'one'
(df['B'] == 'two'), # 'B'列值为'two'
]
然后,我们定义应用于这些条件的值:
values = [1, 2] # 对应上述条件,分别赋值为1和2
最后,我们使用np.select()函数创建新的列:
import numpy as np
df['E'] = np.select(conditions, values, default=3)
以上,我们便生成了新的列’E’,这一列的值完全基于条件表达式的值。
这个代码基本涵盖了如何在Pandas的DataFrame中使用条件语句。如果你有别的地址的问题或者你需要处理的数据有其他更复杂的条件,请随时向我提问,我会尽力为你提供支持的。
(python 转置) python 实现二维列表转置 使用zip实现Python二维列表转置:转换矩阵 全网首发(图文详解1)
(execute) python execute函数功能详解 Python执行函数:exec()和eval() 全网首发(图文详解1)