时间:2021-05-22
前言
首先我们做数据分析,想要得出最科学,最真实的结论,必须要有好的数据。而实际上我们一般面对的的都是复杂,多变的数据,所以必须要有强大的数据处理能力,接下来,我从我们面临的最真实的情况,一步一步教会大家怎么做。
1.数据的读取
(1)读取模块 Import pandas as pd Import numpy as np (2)读取表格的全部数据 df = pd.read_csv(".data/HR.csv") (3)读取你所需要的数据 sl_s=df["sactisfaction_level"]2. 数据的处理
2.1.异常值(空值)处理
2.1.1删除
首先,第一步是对空值的处理。
有两种,一种直接删除,另一种指代。
如果数据多,想简单一点,就直接删除,方法都很简单。
首先,建立一个DataFrame表 1.为了确定是否含有空值: df.isnull() #如果含有空值,返回True 2.删除 df.dropna() #去掉含空值的行 如果想要删除某一个属性含空值的行就加入subset参数 df.dropna(subset=["B"]) #去掉B属性含空值的行 判断是否有重复的数据: df.duplicated(["A"]) #A属性中重复的数据返回True 删除A属性重复的行 df.drop_duplicates(["A"]) df.drop_duplicates(["A"],keep=False) #删除A属性全部重复的行 df.drop_duplicates(["A"],keep=first) #删除A属性全部重复的行,保留第一个 df.drop_duplicates(["A"],keep=last) #删除A属性全部重复的行,保留最后一个2.1.2指代
有些数据非常重要,不能删除,那我们就选择指代,也就是替换
#含空值的数据被替换为“b*” df.fillna("b*") #E属性中的含空值的数据被替换成该属性的平均值 df.fillna(df["E"].mean()) #插值替换 如果含空值的元素为最后一个,那么空值的数据替换成和上一个数据一样 如何含空值的元素为中间,那么空值的数据被(上+下)/2代替 df["E"].interpolate() #3次样条插值 order 参数就是几次样条插值 df["E"].interpolate(method="spline",order=3)*函数
3.利用四分位数来去除异常值
4.静态结构分析
4.1每个值出现的次数 --values_counts() np_s.value_counts() 4.2获取该数据的构成和比例(每个值的频率) np_s.value_counts(normalize=True) 4.3 排序 np_s.value_counts(normalize=True).sort_index()5.数据分区间
5.1把数据分成几份 --histogram() np.histogram(amh_s.values,bins=10) 把数据分成10份 5.2另一种方法 加了区间,计算区间的频数 (左闭右开的区间) Np.histogram(amh_s.values,bins = np.arange(amh_s.min(),amh_s.max()+10,10)) (左开右闭的区间) amh_s.value_counts(bins=np.arange (amh_s.min(),amh_s.max()+10,10))6.英文异常值数据的处理
6.1 首先,统计该数据的分布频数 s_s.value_counts() 6.2确定异常值的名字。 6.3把异常值赋空(NaN) --where() s_s.where(s_s!="name") 意思是把”name”的数据赋空 6.4把赋空的异常值删除 --dropna()删除异常值 s_s.where(s_s!="name").dropna() 6.5 检查删除异常值的结果 s_s.where(s_s!="name").dropna().value_counts()7.对比分析
7.1对表格中空值的行删除 Df = df.dropna(axis=0,how='any') axis =0 ,代表的是行删除 how=‘any' 代表的是含有部分空值就执行行删除 how=‘all' 代表的是一行全部是空值执行行删除 7.2含有条件性的对异常值的删除 df=df[df["last_evaluation"]<=1] [df["salary"]!="name"][df["department" ]!="sale"] 7.3分组(比如:把同一部门的人分为一组) --groupby() df.groupby("department") 7.4对分组后的组取均值 df.groupby("department").mean() 7.5 取部分数据(切片) --loc() df.loc[:,["last_evaluation","department"]] .groupby("department") 7.6 取部分数据求平均 df.loc[:,["last_evaluation","department"]] .groupby("department").mean() 7.7 取部分数据求极差 --apply() df.loc[:,["average_monthly_hours" ,"department"]].groupby ("department")[ "average_monthly_hours"]. apply(lambda x:x.max()-x.min())总结
以上所述是小编给大家介绍的python实现数据分析与建模 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
关于Python数据分析在数学建模中的更多相关应用:Python数据分析在数学建模中的应用汇总(持续更新中!)(1)、导入库importmatplotlib.p
最近在学习关于Python数据分析与挖掘方面的知识,在学习到Python数据分析工具方面时,需要安装一些第三方扩展库来增强Python的数据分析能力,刚开始我就
如下所示:importpandasaspdpath='F:/python/python数据分析与挖掘实战/图书配套数据、代码/chapter3/demo/dat
gis在城市规划中的应用的方面如下: 1、空间分析; 2、三维建模; 3、设施、企业选址; 4、规划数据分析与表达; 5、交通网络模型; 6、土地各
在电商数据驱动业务过程中,有三种数据处置办法:数据分析、数据挖掘和数学建模。数据分析相对来说所用技术浅显一些并且面向的数据不是海量的;而数据挖掘便是利用SAS、