python - 单因子分析

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import pandas as pd
import numpy as np

## 读取数据
df = pd.read_csv("./HR.csv", header=0)

# 查看数据结构
summary = df.describe()

# 求均值
row_mean = df.mean(axis=1)
col_mean = df.mean()

# 选择数据
## 列
print(df["satisfaction_level"].head())
print(df[0:3])

## 标签
print(df.loc[0:3])
print(df.loc[0, ["satisfaction_level"]])


### 1
### 异常值分析
### 空值处理
sl_l = df["satisfaction_level"]
df[df['satisfaction_level'].isnull()]
#print(sl_l.isnull())
print(sl_l.isnull().sum())
print(sl_l[sl_l.isnull()])
## 对空值的填充
#print(sl_l.fillna(value=5))

## 对空值的丢弃
#print(sl_l.dropna(how="any"))
sl_l = sl_l.dropna(how="any")


### 2
### 数据过大、过小异常处理
le_s = df['last_evaluation']
le_s[le_s.isnull()]
le_s.isnull().sum()

## 偏度
le_s.skew()
## 峰度
le_s.kurt()

## 连续异常值处理方式(取四分位上下界)
#(1) le_s = le_s[le_s <= 1]
q_low = le_s.quantile(q=0.25)
q_high = le_s.quantile(q=0.75)
q_interval = q_high - q_low
k = 1.5

### 数据筛选
le_s = le_s[le_s<q_interval+k*q_interval][le_s>q_low-k*q_interval]

### 分布情况
np.histogram(le_s.values,bins=np.arange(0.0, 1.1,0.1 ))

### 3
## 排序
np_s = df['number_project']
np_s.value_counts(normalize=True).sort_index()

### 4 分布情况
pl5_s = df['promotion_last_5years']
pl5_s.value_counts()
pl5_s.value_counts(normalize=True)

## 5 条件筛选
s_s = df['salary']
s_s.where(s_s!=="nme").dropna()


### 总结 
# 去空值
df = pd.read_csv("./HR.csv", header=0)
df = df.dropna(axis=0,how='any')

df[df['last_evaluation']<=1][df['salary']!='nme']
le_s = df['last_evaluation']
q_low = le_s.quantile(q=0.25)
q_high = le_s.quantile(q=0.75)
q_interval = q_high - q_low
k=1.5
le_s = le_s[le_s<k*q_interval+q_high][le_s>k*q_interval-q_low]
df[le_s<k*q_interval+q_high][le_s>k*q_interval-q_low][df['salary']!='nme']
简单对比分析
df.groupby("department").mean()

待续。。。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值