当前位置: 首页 > news >正文

用户权限数据转换为用户组列表(3/3) - Excel PY公式

最近Excel圈里的大事情就是微软把PY塞进了Excel单元格,可以作为公式使用,轻松用PY做数据分析。系好安全带,老司机带你玩一把。

请添加图片描述

实例需求:如下是AD用户的列表,每个用户拥有该应用程序的只读或读写权限,现在需要创建新的AD用户组,并根据用户当前的权限,将这些用户添加到相应的组中。

当前数据集:

SafeUserNameRead permissionsRW permissions
Safe1User1YesYes
Safe1User2YesNo
Safe1User3YesYes
Safe1User4YesNo
Safe2User1YesYes
Safe2User2YesNo
Safe2User3YesYes
Safe2User4YesNo

整理后输出数据集:

SafeADGroup Userlist
Safe1Safe1-ReadGroupUser1,User2,User3,User4
Safe1Safe1-RWGroupUser1,User3
Safe2Safe2-ReadGroupUser1,User2,User3,User4
Safe2Safe2-RWGroupUser1,User3
df=xl("Table1[#全部]", headers=True)
rw_df = df[df['RW permissions'] == 'Yes'].drop(columns=['RW permissions'])
grp_rw = rw_df.groupby(['Safe'])['UserName'].apply(','.join).reset_index()
grp_rw['AD Group'] = grp_rw['Safe'] + '-RWGroup'
r_df = df[df['Read permissions'] == 'Yes'].drop(columns=['Read permissions'])
grp_r = r_df.groupby(['Safe'])['UserName'].apply(','.join).reset_index()
grp_r['AD Group'] = grp_r['Safe'] + '-ReadGroup'
df_output = pd.concat([grp_r, grp_rw], axis=0).rename(columns={'UserName': 'UserList'})[['Safe', 'AD Group', 'UserList']]

【代码解析】
第1行代码读取Excel表作为DataFrame。
第2行代码过滤写权限为Yes的行。
第3行代码分组并合并UserName列。
第4行代码添加分组名称列。
第5行代码过滤读权限为Yes的行。
第6行代码分组并合并UserName列。
第7行代码添加分组名称列。
第8行代码合并读写两个DataFrame。
第9行代码重命名列并选择需要的列。

在这里插入图片描述

小结:
Python的Pandas库可以便捷地处理Excel表数据。通过filter和groupby可以进行分组,concat可以实现表连接,apply方法可以在分组上执行操作,生成自定义列。


相关系列博文链接:

用户权限数据转换为用户组列表(1/3) - VBA
用户权限数据转换为用户组列表(2/3) - Power Query
用户权限数据转换为用户组列表(3/3) - Excel PY公式

http://www.lryc.cn/news/165451.html

相关文章:

  • VS2022+CMAKE+OPENCV+QT+PCL安装及环境搭建
  • JavaScript的内置类
  • 6.英语的十六种时态(三面旗):主动、被动、肯定、否定、一般疑问句、特殊疑问句。
  • SpringBoot连接Redis与Redisson【代码】
  • ardupilot开发 --- MAVSDK 篇
  • 腾讯云AI超级底座新升级:训练效率提升幅度达到3倍
  • AB测试结果分析
  • Python模块和包:sys模块、os模块和变量函数的使用
  • 计算机软件工程毕业设计题目推荐
  • 嵌入式学习笔记(25)串口通信的基本原理
  • c++学习第十三
  • java复习-线程的同步和死锁
  • Qt指示器设置
  • 计算机网络第四节 数据链路层
  • Vue.js not detected解决方法
  • Window10安装PHP7.4
  • 【C++刷题】二叉树进阶刷题
  • 有效的数独
  • Vue导航守卫beforeRouteEnter,beforeRouteUpdate,beforeRouteLeave
  • 小红书《乡村振兴战略下传统村落文化旅游设计》中南大许少辉八一新著
  • Android13 下拉菜单栏中添加快捷截图按钮
  • GFS文件系统
  • 22 相交链表
  • 简历(快速上手)
  • wpf复制xaml及其cs窗体到其他项目 添加现有项,选 .xaml.cs,点添加即可。VS2022
  • 在线旅游平台步入新时代,携程如何走出自己的路?
  • java中feign远程调用底层是用Hystrix作为熔断器吗?
  • Web安全——穷举爆破下篇(仅供学习)
  • 强大的JTAG边界扫描(5):FPGA边界扫描应用
  • 苍穹外卖集成 Apache POI Java实现Excel文件的读写下载