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 函数(一)
发布评论