您当前的位置:首页 > 生活常识

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

时间:2023-03-29 20:22:26

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

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 pdimport osdef 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 fielddata_female=data[data["性别"]=="女"]display(data_female)#select data with dedicated languages or dialectsdata_female=data[data["母语/方言"].isin(["广东话","英语"])]display(data_female)#select data without yearly bonusdata_without_bonus=data[~data["评级"].isin(["无年终奖"])]display(data_without_bonus)#select data with male in sex field and work over 20 yearsdata_male_over_10_job_years=data[(data["性别"].isin(["男"]))&(data["工龄"]>=20)]display(data_male_over_10_job_years)#select data with name containing little in Chinesedata_with_little_in_name = data[data["姓名"].str.contains("小")]display(data_with_little_in_name)#select data with name containing little in Chinese and also femaledata_with_little_in_name_female = data[(data["姓名"].str.contains("小"))&(data["性别"].isin(["女"]))]display(data_with_little_in_name_female)#select data with age in a perioddata_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

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

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

数据

最新文章