pandas编写年会抽奖程序

这篇博客介绍了如何利用Python的pandas库编写年会抽奖程序。程序设计确保每位参与者只能中奖一次,设置了不同等级的奖项:一等奖1名,二等奖2名,三等奖3名。文中提供了两种不同的代码实现方式。
摘要由CSDN通过智能技术生成

某公司年会设有抽奖环节,奖品设有三个等级:一等奖一名,二等奖两名,三等奖三名。要求一个人只能中一次奖。

代码实现方法一:

先构造数据:

import pandas as pd
import faker
f=faker.Faker('zh-cn')
df=pd.DataFrame([f.name() for i in range(50)],columns=['name'])
df['等级']=''
df

抽奖时执行代码:

win_info=(3,'三等奖')   #配置信息,第一位为抽奖人数,第二位为奖项等级
filter=df.index.isin(df.sample(win_info[0]).index)&-(df.等级.isna()) #创建一个筛选器变量
df.loc[filter,'等级']=win_info[1]   #执行抽奖,奖等级写入
df.loc[df.等级==win_info[1]]   #显示本次抽奖结果

win_info=(2,'二等级')
filter=df.index.isin(df.sample(win_info[0]).index)&~(df.等级.isna())
df.loc[filter,'等级']=win_info[1]
df.loc[df.等级==win_info[1]]

win_info=(1,'一等级')
filter=df.index.isin(df.sample(win_info[0]).index)&~(df.等级.isna())
df.loc[filt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值