首页 > 百科知识 正文

文科生自学Python-按条件筛选和抽取数据样本(python筛选数据方法)

时间:2023-11-19 15:35:46 阅读:379 作者:洒脱不朽

--凡事勤则易,凡事惰则难,学习编程成就更好的自己--

Python语言简洁生动,特别适合文科生学习入门IT世界,用几十行代码就能够做一个完整的爬虫脚本,开发效率杠杠的!短时间内即可解决工作和学习中碰到的各种棘手问题。(本人外语专业毕业,机缘巧合爱上编程,自学道路曲曲折折,痛并快乐!)在这里总结一下自学Python遇到的难点和重点,分享码过的代码和要点总结,希望能够给初学者一点启示和鼓励,同时愿意结交更多大神交流有助提升自己的水平。

今天分享的知识点是:如何按指定条件筛选和抽取数据样本,因为平时在做数据处理和分析工作中,往往需要按某些字段特征进行筛选和提取目标数据集,下面用一个有趣的案例来展开说明:

文科生自学Python-按条件筛选和抽取数据样本(python筛选数据方法)-第1张

通过观察得知该数据集合共有13个样本,接下来看看如何钻取得到想要的目标数据集吧:

首先在Jupyter Notebook环境下读取和查看数据:

文科生自学Python-按条件筛选和抽取数据样本(python筛选数据方法)-第2张

任务1.提取性别为女的数据

文科生自学Python-按条件筛选和抽取数据样本(python筛选数据方法)-第3张

任务2.提取母语/方言为广东话和英语的数据

使用了isin方法,注意括弧里输入列表

文科生自学Python-按条件筛选和抽取数据样本(python筛选数据方法)-第4张

任务3.提取评级中排除“无年终奖”的其他剩余数据

使用~符号进行反选数据,这种方法更加简单高效

文科生自学Python-按条件筛选和抽取数据样本(python筛选数据方法)-第5张

任务4.提取性别为男且工龄大于等于20年的数据

注意用“&”符号表示且关系即是取交集,每个条件单独用()限定好

文科生自学Python-按条件筛选和抽取数据样本(python筛选数据方法)-第6张

任务5.提取姓名中包含有“小”字的数据

注意一定使用str.contains这个表达式

文科生自学Python-按条件筛选和抽取数据样本(python筛选数据方法)-第7张

任务6.提取姓名中包含有“小”字且性别是女的数据

大家是不是感觉越来越好玩了,其实也不是特别难!!!

文科生自学Python-按条件筛选和抽取数据样本(python筛选数据方法)-第8张

任务7.提取年龄在30岁到50岁之间的数据(包含30和50)

文科生自学Python-按条件筛选和抽取数据样本(python筛选数据方法)-第9张

任务8.提取姓名中包含有“小”字或绩效考核成绩大于等于90的数据

注意用“|”符号表示或关系即是取并集,每个条件单独用()限定好

文科生自学Python-按条件筛选和抽取数据样本(python筛选数据方法)-第10张

代码如下:

import pandas as pd import os def Set_Work_Path(x): try: os.chdir(x) route = os.getcwd() return route except Exception: print("No Result") work_path = r"E:\DATA\03AUG21" Set_Work_Path(work_path) data = pd.read_excel("Sample.xlsm",sheet_name="DATA-Python",header=0,index_col=None) display(data) #select data with female in sex field data_female=data[data["性别"]=="女"] display(data_female) #select data with dedicated languages or dialects data_female=data[data["母语/方言"].isin(["广东话","英语"])] display(data_female) #select data without yearly bonus data_without_bonus=data[~data["评级"].isin(["无年终奖"])] display(data_without_bonus) #select data with male in sex field and work over 20 years data_male_over_10_job_years=data[(data["性别"].isin(["男"]))&(data["工龄"]>=20)] display(data_male_over_10_job_years) #select data with name containing little in Chinese data_with_little_in_name = data[data["姓名"].str.contains("小")] display(data_with_little_in_name) #select data with name containing little in Chinese and also female data_with_little_in_name_female = data[(data["姓名"].str.contains("小"))&(data["性别"].isin(["女"]))] display(data_with_little_in_name_female) #select data with age in a period data_work_bio_age = data[(data["年龄"]<=50)&(data["年龄"]>=30)] display(data_work_bio_age) data_with_little_in_name_good_performance = data[(data["姓名"].str.contains("小"))|(data["绩效考核成绩"]>=90)] display(data_with_little_in_name_good_performance)

END

我为人人,人人为我!!欢迎大家关注,点赞和转发!!!

~~人生不是赛场,梦想不容退场~~不断努力学习脱变出一个更好的自己,不断分享学习路上的收获和感悟帮助他人成就自己!!!

,

版权声明:该问答观点仅代表作者本人。如有侵犯您版权权利请告知 cpumjj@hotmail.com,我们将尽快删除相关内容。