6、数据分箱
import pandas as pd
import numpy as np
df=pd.read_csv("data/employees.csv").head(10)
df
|
employee_id |
name |
department |
position |
salary |
hire_date |
| 0 |
EMP001 |
赵洋 |
产品部 |
数据分析师 |
3765 |
2022-02-02 |
| 1 |
EMP002 |
周磊 |
运营部 |
数据运营 |
5772 |
2021-11-25 |
| 2 |
EMP003 |
刘洋 |
产品部 |
需求分析师 |
2608 |
2024-09-29 |
| 3 |
EMP004 |
吴伟 |
市场部 |
活动执行 |
4699 |
2023-12-08 |
| 4 |
EMP005 |
张勇 |
人事部 |
培训专员 |
9277 |
2023-09-19 |
| 5 |
EMP006 |
李敏 |
人事部 |
招聘专员 |
3619 |
2021-09-05 |
| 6 |
EMP007 |
刘军 |
市场部 |
活动执行 |
3094 |
2025-05-05 |
| 7 |
EMP008 |
杨静 |
技术部 |
后端开发 |
3398 |
2024-07-19 |
| 8 |
EMP009 |
王伟 |
产品部 |
产品助理 |
3068 |
2023-06-24 |
| 9 |
EMP010 |
吴勇 |
市场部 |
市场策划 |
2278 |
2023-03-17 |
#均分成三段
pd.cut(df["salary"],bins=3).value_counts()
salary
(2271.001, 4611.0] 7
(4611.0, 6944.0] 2
(6944.0, 9277.0] 1
Name: count, dtype: int64
#自行定义分段范围
df["收入范围"]=pd.cut(df["salary"],bins=[0,2500,5000,10000],labels=["低","中","高"])
df
|
employee_id |
name |
department |
position |
salary |
hire_date |
收入范围 |
| 0 |
EMP001 |
赵洋 |
产品部 |
数据分析师 |
3765 |
2022-02-02 |
中 |
| 1 |
EMP002 |
周磊 |
运营部 |
数据运营 |
5772 |
2021-11-25 |
高 |
| 2 |
EMP003 |
刘洋 |
产品部 |
需求分析师 |
2608 |
2024-09-29 |
中 |
| 3 |
EMP004 |
吴伟 |
市场部 |
活动执行 |
4699 |
2023-12-08 |
中 |
| 4 |
EMP005 |
张勇 |
人事部 |
培训专员 |
9277 |
2023-09-19 |
高 |
| 5 |
EMP006 |
李敏 |
人事部 |
招聘专员 |
3619 |
2021-09-05 |
中 |
| 6 |
EMP007 |
刘军 |
市场部 |
活动执行 |
3094 |
2025-05-05 |
中 |
| 7 |
EMP008 |
杨静 |
技术部 |
后端开发 |
3398 |
2024-07-19 |
中 |
| 8 |
EMP009 |
王伟 |
产品部 |
产品助理 |
3068 |
2023-06-24 |
中 |
| 9 |
EMP010 |
吴勇 |
市场部 |
市场策划 |
2278 |
2023-03-17 |
低 |
#等频率分割
pd.qcut(df["salary"],4).value_counts()
salary
(2277.999, 3074.5] 3
(4465.5, 9277.0] 3
(3074.5, 3508.5] 2
(3508.5, 4465.5] 2
Name: count, dtype: int64
#ser_index函数用于修改index列
df=pd.DataFrame({
"name":["A","B","C","D"],
"age":[20,30,40,50],
"gender":["Female","Male","Female","Female"]
})
df.set_index("name")
# df.reset_index()
df
|
name |
age |
gender |
| 0 |
A |
20 |
Female |
| 1 |
B |
30 |
Male |
| 2 |
C |
40 |
Female |
| 3 |
D |
50 |
Female |
7、行列名修改
#rename函数用于修改columns和index
df.rename(columns={"name":"姓名"},index={0:4})
|
姓名 |
age |
gender |
| 4 |
A |
20 |
Female |
| 1 |
B |
30 |
Male |
| 2 |
C |
40 |
Female |
| 3 |
D |
50 |
Female |
#也可以直接用访问修改
df.index=[10,20,30,40]
df.columns=["姓名","年龄","性别"]
df
|
姓名 |
年龄 |
性别 |
| 10 |
A |
20 |
Female |
| 20 |
B |
30 |
Male |
| 30 |
C |
40 |
Female |
| 40 |
D |
50 |
Female |
********************