本文主要介绍python的数据分析和建模功能。这篇文章很详细,有一定的参考价值。有需要的朋友可以参考一下。
前言
首先我们做数据分析。要想得出最科学最真实的结论,必须要有好的数据。事实上,我们普遍面对的是复杂多变的数据,所以必须要有很强的数据处理能力。接下来我就从我们面临的最真实的情况出发,一步步教你怎么做。
1.数据的读取
(1)阅读模块
进口熊猫作为pd
将numpy作为np导入
(2)读取表格中的所有数据。
df=pd.read_csv('。data/HR . CSV’)
(3)读取你需要的数据。
sl _ s=df[' sacti sation _ level ']
2. 数据的处理
2.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']。均值())
#插值替换
如果具有空值的元素是最后一个,则具有空值的数据被替换为与前一个相同的数据。
如果空值的元素在中间,那么空值的数据被替换为(top和bottom) /2。
df['E']。插值()
#3样条插值的阶参数是多次样条插值。
df['E']。插值(方法='spline ',阶数=3)
*功能
(4)异常值分析(如果包含true,则返回True) - isnull()
sl_s.isnull()
主要是指没有空值。
(5)提取异常值的属性信息
sl_s[sl_s.isnull()]
(6)提取异常值表的所有信息。
df[df[' sactission _ level ']。isnull()]
(7)丢弃异常值- dropna()
sl_s=sl_s.dropna()
注意:删除空异常值。
可以用where()清空异常数据,然后用dropna()删除。
(8)填写离群值- fillna()
sl_s=sl_s.fillna()
(9)平均值-平均值()
sl_s .均值()
(10)标准偏差- std()
Sl_s .标准()
(11)最大()
sl_s.max()
(12)最小值-最小()
最小持续时间()
(13)中位数-中位数()
sl_s.median()
(14)下四分位数-分位数(q=0.25)
sl_s分位数(q=0.25)
(15)上四分位数-分位数(q=0.75)
sl_s分位数(q=0.75)
(16)偏斜度-偏斜度()
sl_s.skew()
分析:小于0表示负偏均值太小,大部分分数大于他的均值。
大于0,略有偏差。
远大于0,为极端振动偏差,平均值远大于其大部分值。
(17)峭度-库尔特()
库尔特
分析:0与正态分布相比,他的走势相对平缓。
远大于0说明他变形很大,所以不靠谱。
(18)得到离散分布(numpy模块)-直方图()
np.histogram(sl_s.values,bin=NP . arange(0.0,1.1,0.1))
结果分析:
[195,1214,532,974,…]
[0.0,0.1,0.2,0.3,0.4…]
0.0到0.1之间有195个数字,0.1到0.2之间有1214个数字,以此类推。
分布为0.1。
3.利用四分位数来去除异常值
3.1.提取大于1的值
乐s[乐s1]
3.2移除大于1的异常值
[le_s=1]
3.3正常值的提取(使用四分位数)
3.3.1下四分位数
q _ low=分位数(q=0.25)
3.3.2上四分位数
q_high=le_s .分位数(q=0.75)
3.3.3四分间距
q_interval=q_high-q_low
定义k的值
K=1.5~3
如果k=1.5,则删除的异常值是中度异常值。
如果k=3.0,则删除的异常值极不正常。
筛选
le _ s=le _ s[le _ sq _高k * q _ interval][le _ sq _低-k*q_interval]
3.4数据长度的数量()
长度(长度)
3.5离散分布直方图(numpy模块)
np.histogram(le_s.values,bin=NP . arange(0.0,1.1,0.1))
3.6审查数据的平均值、标准差、中位数、最大值、最小值、偏度和峰度,以确定数据的正态性。
4.静态结构分析
4.1每个值的出现次数- values_counts()
值计数()
4.2获得该数据的组成和比例(每个值的频率)
NP _ s . value _ counts(normalize=True)
4.3分类
np_s.value_counts(正常化=真)。排序索引()
5.数据分区间
5.1将数据分成几部分-直方图()
NP。直方图(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首先统计数据的分布频率。
值计数()
6.2确定异常值的名称。
6.3清空异常值(NaN) -其中()
s_s.where(s_s!='name ')
意思是清空“名字”的数据
6.4删除空白的离群值——dropna()删除离群值。
s_s.where(s_s!='name ')。德罗普纳()
6.5检查删除异常值的结果。
s_s.where(s_s!='name ')。dropna()。值计数()
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' ]!='销售']
7.3分组(比如把同一部门的人分成一组)- groupby()
df.groupby('部门')
7.4对分组进行平均。
df.groupby('部门')。平均值()
7.5取一些数据(切片)- loc()
df.loc[:['last_evaluation ','部门']]。groupby(“部门”)
7.6取一些数据,取平均值。
df.loc[:['last_evaluation ','部门']]。groupby('部门')。平均值()
7.7取一些数据求极值差——应用()
df.loc[:['平均_每月_小时','部门']]。groupby('部门')['平均_每月_小时']。应用(lambda x:x.max()-x.min())
总结
以上是边肖介绍的python数据分析与建模。希望对你有帮助。如果您有任何问题,请给我留言,边肖将及时回复您。非常感谢您对我们网站的支持!
如果你觉得这篇文章对你有帮助,请转载,请注明出处,谢谢!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。