【python数据处理(2)】pandas按照某些行列的数据要求,在新的一列输出要求数据

举例

在日常处理表格的时候,经常会遇到一些要求类似这样的:销售方面,按照A,B产品的销量额做标记;在考核方面,按照某些指标进行最后的评定等等

操作实例

这里就是以上面的表格数据为例,假设进行录取评定,要求选取语文分数大于80,数学和英语分数大于90分且专业课分数不低于120的人,操作过程代码和图形如下:

导入库和创建表格数据:

import pandas as pd

df = pd.DataFrame({
    '姓名':['张三','李四','王二','麻子'],
    '语文':[78,90,55,67],
    '数学':[86,95,45,78],
    '英语':[83,93,56,87],
    '专业课':[150,180,89,103]
})
df

 创建“综合评定”数据列,并进行数据筛选:

df['综合评定'] = ''
df['综合评定'][(df['语文']>80) & (df['数学']>90) & (df['英语']>90) & (df['专业课']>120)] = '录取'
df

 

拓展延伸

运行代码过后可以发现,这种纯有逻辑符号连接的判断,虽然很容易理解,但是不具有泛化能力,且看上去很冗肿。为了方便代码的保存和调用,可以对代买进行优化并封装成函数,示例如下:

要求:选取2016年,北京和重庆的数据,并做标记,代码如下:

import numpy as np
import pandas as pd
 
data = {'city': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen', 'Hangzhou', 'Chongqing'],
 'year': [2016,2016,2015,2017,2016, 2016],
 'population': [2100, 2300, 1000, 700, 500, 500]}
frame = pd.DataFrame(data, columns = ['year', 'city', 'population'])
 
def function(a, b):
     if ('ing' in a) and (b == 2016):
        return 1
     else:
        return 0
print(frame, '\n')
frame['test'] = frame.apply(lambda x: function(x.city, x.year), axis = 1)
print(frame)

运行结果如下图:

 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lys_828

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值