excel中,if函数的使用非常普遍。如果通过pandas可以有好几种方法,核心还是通过if语句实现。下面我来阐述一下:

>>> df = pd.read_excel(r'D:/myExcel/1.xlsx')
>>> df
  销售人员  销售额
0   张三 -100
1   李四  200
2   张三  100
3   王五  100
4   王五  300

(1)将销售额大于0时,标记为good,否则标记为bad
在这里用到了pandas中的apply函数以及python中的三元表达式

>>> df['grade'] = df.销售额.apply(lambda x : 'good' if x > 0 else 'bad')
>>> df
  销售人员  销售额 grade
0   张三 -100   bad
1   李四  200  good
2   张三  100  good
3   王五  100  good
4   王五  300  good

(2)将张三的销售额大于0时,标记为good,否则其他所有记录标记为bad
使用loc方法

>>> df
    A    B
0  张三 -100
1  李四  200
2  张三  100
3  王五  100
4  王五  300
# 'grade'为新增列
>>> df.loc[(df.A == '张三') & (df.B > 0), 'grade'] = 'yes'
>>> df
    A    B grade
0  张三 -100   NaN
1  李四  200   NaN
2  张三  100   yes
3  王五  100   NaN
4  王五  300   NaN
# ~表示取反。
>>> df.loc[~((df.A == '张三') & (df.B > 0)), 'grade'] = 'no'
>>> df
    A    B grade
0  张三 -100    no
1  李四  200    no
2  张三  100   yes
3  王五  100    no
4  王五  300    no

哈哈,以上就是相关实现,其中第一种apply + 三元运算符的适用性比较低,仅使用某一列的比较确认,loc方法的适用性比较广,但步骤稍微麻烦,下一次我们将尝试将loc方法表写为函数一次处理,不再分部进行。同样,pandas还提供了cut函数进行了支持。哈哈,欢迎大家关注python小工具,一起学习python和pandas

更多推荐

python pandas实现excel中的if 函数(一)