数据清洗
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(10,100,(10,3)), columns=list('ABC'))
df.iloc[3:5, 0] = np.nan
df.iloc[4:6, 1] = np.nan
df.iloc[5:8, 2] = np.nan
df.head()
|
A |
B |
C |
0 |
22.0 |
63.0 |
41.0 |
1 |
50.0 |
57.0 |
12.0 |
2 |
31.0 |
82.0 |
71.0 |
3 |
NaN |
80.0 |
82.0 |
4 |
NaN |
NaN |
49.0 |
缺失值
- isnull():判断是缺失值
- notnull():判断不是缺失值
- fillna():缺失值填充
- dropna():删除缺失值
缺失值判断
df['A'].isnull()
0 False
1 False
2 False
3 True
4 True
5 False
6 False
7 False
8 False
9 False
Name: A, dtype: bool
df['A'].notnull()
0 True
1 True
2 True
3 False
4 False
5 True
6 True
7 True
8 True
9 True
Name: A, dtype: bool
df['A'].isnull().value_counts()
False 8
True 2
Name: A, dtype: int64
df.info()
RangeIndex: 10 entries, 0 to 9
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 A 8 non-null float64
1 B 8 non-null float64
2 C 7 non-null float64
dtypes: float64(3)
memory usage: 368.0 bytes
缺失值填充 丨★★
df.fillna(0)
|
A |
B |
C |
0 |
22.0 |
63.0 |
41.0 |
1 |
50.0 |
57.0 |
12.0 |
2 |
31.0 |
82.0 |
71.0 |
3 |
0.0 |
80.0 |
82.0 |
4 |
0.0 |
0.0 |
49.0 |
5 |
44.0 |
0.0 |
0.0 |
6 |
61.0 |
86.0 |
0.0 |
7 |
25.0 |
17.0 |
0.0 |
8 |
53.0 |
51.0 |
84.0 |
9 |
44.0 |
36.0 |
54.0 |
df['A'].fillna(999,inplace=True)
df
|
A |
B |
C |
0 |
22.0 |
63.0 |
41.0 |
1 |
50.0 |
57.0 |
12.0 |
2 |
31.0 |
82.0 |
71.0 |
3 |
999.0 |
80.0 |
82.0 |
4 |
999.0 |
NaN |
49.0 |
5 |
44.0 |
NaN |
NaN |
6 |
61.0 |
86.0 |
NaN |
7 |
25.0 |
17.0 |
NaN |
8 |
53.0 |
51.0 |
84.0 |
9 |
44.0 |
36.0 |
54.0 |
df['B'].isnull().value_counts()
df['B'].mean()
59.0
df['B'].fillna(df['B'].mean(),inplace=True)
df
|
A |
B |
C |
0 |
22.0 |
63.0 |
41.0 |
1 |
50.0 |
57.0 |
12.0 |
2 |
31.0 |
82.0 |
71.0 |
3 |
999.0 |
80.0 |
82.0 |
4 |
999.0 |
59.0 |
49.0 |
5 |
44.0 |
59.0 |
NaN |
6 |
61.0 |
86.0 |
NaN |
7 |
25.0 |
17.0 |
NaN |
8 |
53.0 |
51.0 |
84.0 |
9 |
44.0 |
36.0 |
54.0 |
缺失值删除 丨★★★
df.dropna()
|
A |
B |
C |
0 |
22.0 |
63.0 |
41.0 |
1 |
50.0 |
57.0 |
12.0 |
2 |
31.0 |
82.0 |
71.0 |
3 |
999.0 |
80.0 |
82.0 |
4 |
999.0 |
59.0 |
49.0 |
8 |
53.0 |
51.0 |
84.0 |
9 |
44.0 |
36.0 |
54.0 |
df.dropna(axis=1)
|
A |
B |
0 |
22.0 |
63.0 |
1 |
50.0 |
57.0 |
2 |
31.0 |
82.0 |
3 |
999.0 |
80.0 |
4 |
999.0 |
59.0 |
5 |
44.0 |
59.0 |
6 |
61.0 |
86.0 |
7 |
25.0 |
17.0 |
8 |
53.0 |
51.0 |
9 |
44.0 |
36.0 |
df.dropna(subset=["C"],inplace=True)
df
|
A |
B |
C |
0 |
22.0 |
63.0 |
41.0 |
1 |
50.0 |
57.0 |
12.0 |
2 |
31.0 |
82.0 |
71.0 |
3 |
999.0 |
80.0 |
82.0 |
4 |
999.0 |
59.0 |
49.0 |
8 |
53.0 |
51.0 |
84.0 |
9 |
44.0 |
36.0 |
54.0 |
df.dropna(how="all")
df.dropna(thresh=2)
|
A |
B |
C |
0 |
22.0 |
63.0 |
41.0 |
1 |
50.0 |
57.0 |
12.0 |
2 |
31.0 |
82.0 |
71.0 |
3 |
999.0 |
80.0 |
82.0 |
4 |
999.0 |
59.0 |
49.0 |
8 |
53.0 |
51.0 |
84.0 |
9 |
44.0 |
36.0 |
54.0 |
重复值
import pandas as pd
import numpy as np
np.random.seed(10)
df = pd.DataFrame(np.random.randint(80,100,(10,3)),columns=['A','B','C'])
df
|
A |
B |
C |
0 |
89 |
84 |
95 |
1 |
80 |
97 |
96 |
2 |
97 |
88 |
89 |
3 |
80 |
90 |
88 |
4 |
84 |
99 |
96 |
5 |
84 |
95 |
91 |
6 |
91 |
81 |
88 |
7 |
84 |
94 |
97 |
8 |
99 |
93 |
85 |
9 |
93 |
99 |
93 |
重复值判断 丨★★
df[df.duplicated(subset='A',keep=False)]
|
A |
B |
C |
1 |
80 |
97 |
96 |
3 |
80 |
90 |
88 |
4 |
84 |
99 |
96 |
5 |
84 |
95 |
91 |
7 |
84 |
94 |
97 |
df['A'].duplicated()
0 False
1 False
2 False
3 True
4 False
5 True
6 False
7 True
8 False
9 False
Name: A, dtype: bool
df['A'].unique()
array([89, 80, 97, 84, 91, 99, 93])
重复值删除 丨★★★
df.drop_duplicates('A',inplace=True)
df
|
A |
B |
C |
0 |
89 |
84 |
95 |
1 |
80 |
97 |
96 |
2 |
97 |
88 |
89 |
4 |
84 |
99 |
96 |
6 |
91 |
81 |
88 |
8 |
99 |
93 |
85 |
9 |
93 |
99 |
93 |
df.drop_duplicates(subset=['A','B'],keep='first',inplace=True)
df
|
A |
B |
C |
0 |
89 |
84 |
95 |
1 |
80 |
97 |
96 |
2 |
97 |
88 |
89 |
4 |
84 |
99 |
96 |
6 |
91 |
81 |
88 |
8 |
99 |
93 |
85 |
9 |
93 |
99 |
93 |
数据替换
import pandas as pd
grades = [48, 99, 75, 80, 42, 80, 72, 68, 36, 78]
df = pd.DataFrame({'ID': ["N2000%d" % r for r in range(10)],
'性别': ['F', 'M', 'F', 'M', 'F','M', 'F', 'M', 'M', 'M'],
'考试年份': ['2007', '2007', '2007', '2008', '2008', '2008', '2008', '2009', '2009', '2009'],
'科目': ['代数', '统计', '生物', '代数','代数', '统计', '统计', '代数','生物', '生物'],
'是否参加': ['yes', 'yes', 'yes', 'yes', 'no','yes', 'yes', 'yes', 'yes', 'yes'],
'是否通过': ['yes' if x > 50 else 'no' for x in grades],
'是否录用': [True, True, True, False,False, False, False, True, True, False],
'得分': grades})
df
|
ID |
性别 |
考试年份 |
科目 |
是否参加 |
是否通过 |
是否录用 |
得分 |
0 |
N20000 |
F |
2007 |
代数 |
yes |
no |
True |
48 |
1 |
N20001 |
M |
2007 |
统计 |
yes |
yes |
True |
99 |
2 |
N20002 |
F |
2007 |
生物 |
yes |
yes |
True |
75 |
3 |
N20003 |
M |
2008 |
代数 |
yes |
yes |
False |
80 |
4 |
N20004 |
F |
2008 |
代数 |
no |
no |
False |
42 |
5 |
N20005 |
M |
2008 |
统计 |
yes |
yes |
False |
80 |
6 |
N20006 |
F |
2008 |
统计 |
yes |
yes |
False |
72 |
7 |
N20007 |
M |
2009 |
代数 |
yes |
yes |
True |
68 |
8 |
N20008 |
M |
2009 |
生物 |
yes |
no |
True |
36 |
9 |
N20009 |
M |
2009 |
生物 |
yes |
yes |
False |
78 |
一对一或者多对一替换 丨★★★
df['科目'].replace(['代数','统计'],'数学',inplace=True)
df
|
ID |
性别 |
考试年份 |
科目 |
是否参加 |
是否通过 |
是否录用 |
得分 |
0 |
N20000 |
F |
2007 |
数学 |
yes |
no |
True |
48 |
1 |
N20001 |
M |
2007 |
数学 |
yes |
yes |
True |
99 |
2 |
N20002 |
F |
2007 |
生物 |
yes |
yes |
True |
75 |
3 |
N20003 |
M |
2008 |
数学 |
yes |
yes |
False |
80 |
4 |
N20004 |
F |
2008 |
数学 |
no |
no |
False |
42 |
5 |
N20005 |
M |
2008 |
数学 |
yes |
yes |
False |
80 |
6 |
N20006 |
F |
2008 |
数学 |
yes |
yes |
False |
72 |
7 |
N20007 |
M |
2009 |
数学 |
yes |
yes |
True |
68 |
8 |
N20008 |
M |
2009 |
生物 |
yes |
no |
True |
36 |
9 |
N20009 |
M |
2009 |
生物 |
yes |
yes |
False |
78 |
多对多替换 丨★★★
df['是否参加'].replace(['yes','no'],['是','否'],inplace=True)
df
|
ID |
性别 |
考试年份 |
科目 |
是否参加 |
是否通过 |
是否录用 |
得分 |
0 |
N20000 |
F |
2007 |
数学 |
是 |
no |
True |
48 |
1 |
N20001 |
M |
2007 |
数学 |
是 |
yes |
True |
99 |
2 |
N20002 |
F |
2007 |
生物 |
是 |
yes |
True |
75 |
3 |
N20003 |
M |
2008 |
数学 |
是 |
yes |
False |
80 |
4 |
N20004 |
F |
2008 |
数学 |
否 |
no |
False |
42 |
5 |
N20005 |
M |
2008 |
数学 |
是 |
yes |
False |
80 |
6 |
N20006 |
F |
2008 |
数学 |
是 |
yes |
False |
72 |
7 |
N20007 |
M |
2009 |
数学 |
是 |
yes |
True |
68 |
8 |
N20008 |
M |
2009 |
生物 |
是 |
no |
True |
36 |
9 |
N20009 |
M |
2009 |
生物 |
是 |
yes |
False |
78 |
map丨★★★
df['性别'] = df['性别'].map(lambda x: 'F' if x==1 else 'M')
df
|
ID |
性别 |
考试年份 |
科目 |
是否参加 |
是否通过 |
是否录用 |
得分 |
0 |
N20000 |
M |
2007 |
数学 |
是 |
no |
True |
48 |
1 |
N20001 |
M |
2007 |
数学 |
是 |
yes |
True |
99 |
2 |
N20002 |
M |
2007 |
生物 |
是 |
yes |
True |
75 |
3 |
N20003 |
M |
2008 |
数学 |
是 |
yes |
False |
80 |
4 |
N20004 |
M |
2008 |
数学 |
否 |
no |
False |
42 |
5 |
N20005 |
M |
2008 |
数学 |
是 |
yes |
False |
80 |
6 |
N20006 |
M |
2008 |
数学 |
是 |
yes |
False |
72 |
7 |
N20007 |
M |
2009 |
数学 |
是 |
yes |
True |
68 |
8 |
N20008 |
M |
2009 |
生物 |
是 |
no |
True |
36 |
9 |
N20009 |
M |
2009 |
生物 |
是 |
yes |
False |
78 |
loc原地替换 丨★
df.loc[df['是否通过']=='yes', '是否通过'] = '是'
df.loc[df['是否通过']=='no', '是否通过'] = '否'
df
|
ID |
性别 |
考试年份 |
科目 |
是否参加 |
是否通过 |
是否录用 |
得分 |
0 |
N20000 |
M |
2007 |
数学 |
是 |
否 |
True |
48 |
1 |
N20001 |
M |
2007 |
数学 |
是 |
是 |
True |
99 |
2 |
N20002 |
M |
2007 |
生物 |
是 |
是 |
True |
75 |
3 |
N20003 |
M |
2008 |
数学 |
是 |
是 |
False |
80 |
4 |
N20004 |
M |
2008 |
数学 |
否 |
否 |
False |
42 |
5 |
N20005 |
M |
2008 |
数学 |
是 |
是 |
False |
80 |
6 |
N20006 |
M |
2008 |
数学 |
是 |
是 |
False |
72 |
7 |
N20007 |
M |
2009 |
数学 |
是 |
是 |
True |
68 |
8 |
N20008 |
M |
2009 |
生物 |
是 |
否 |
True |
36 |
9 |
N20009 |
M |
2009 |
生物 |
是 |
是 |
False |
78 |
字典方式替换
df['性别'].replace({'F':1, 'M':0},inplace=True)
df
|
ID |
性别 |
考试年份 |
科目 |
是否参加 |
是否通过 |
是否录用 |
得分 |
0 |
N20000 |
0 |
2007 |
数学 |
是 |
否 |
True |
48 |
1 |
N20001 |
0 |
2007 |
数学 |
是 |
是 |
True |
99 |
2 |
N20002 |
0 |
2007 |
生物 |
是 |
是 |
True |
75 |
3 |
N20003 |
0 |
2008 |
数学 |
是 |
是 |
False |
80 |
4 |
N20004 |
0 |
2008 |
数学 |
否 |
否 |
False |
42 |
5 |
N20005 |
0 |
2008 |
数学 |
是 |
是 |
False |
80 |
6 |
N20006 |
0 |
2008 |
数学 |
是 |
是 |
False |
72 |
7 |
N20007 |
0 |
2009 |
数学 |
是 |
是 |
True |
68 |
8 |
N20008 |
0 |
2009 |
生物 |
是 |
否 |
True |
36 |
9 |
N20009 |
0 |
2009 |
生物 |
是 |
是 |
False |
78 |
字符串处理
字符串拆分 丨str.split() 丨★★★
import pandas as pd
import numpy as np
s2 = pd.Series(['a_b_c', 'c_d_e', np.nan, 'f_g_h'])
s3 = s2.str.split('_')
s3
0 [a, b, c]
1 [c, d, e]
2 NaN
3 [f, g, h]
dtype: object
s2.str.split('_').str.get(1)
0 b
1 d
2 NaN
3 g
dtype: object
s2.str.split('_').str[1]
0 b
1 d
2 NaN
3 g
dtype: object
s2.str.split('_', expand=True)
|
0 |
1 |
2 |
0 |
a |
b |
c |
1 |
c |
d |
e |
2 |
NaN |
NaN |
NaN |
3 |
f |
g |
h |
s2.str.split('_', expand=True, n=1)
|
0 |
1 |
0 |
a |
b_c |
1 |
c |
d_e |
2 |
NaN |
NaN |
3 |
f |
g_h |
去除空格 丨str.strip() 丨★★★
s1 = pd.Series([' jack', 'jill ', ' jesse ', 'frank'])
s1
0 jack
1 jill
2 jesse
3 frank
dtype: object
s1.str.strip()
0 jack
1 jill
2 jesse
3 frank
dtype: object
s1.str.lstrip()
0 jack
1 jill
2 jesse
3 frank
dtype: object
s1.str.rstrip()
0 jack
1 jill
2 jesse
3 frank
dtype: object
df = pd.DataFrame(np.random.randn(3, 2),columns=[' Column A ', ' Column B '], index=range(3))
df
|
Column A |
Column B |
0 |
-1.254242 |
0.331579 |
1 |
-0.308600 |
-0.153735 |
2 |
0.678931 |
-1.913554 |
df.columns = df.columns.str.strip().str.lower().str.replace(' ', '_')
df
|
column_a |
column_b |
0 |
-1.254242 |
0.331579 |
1 |
-0.308600 |
-0.153735 |
2 |
0.678931 |
-1.913554 |
转换成小写 丨str.lower()
s1.str.lower()
0 jack
1 jill
2 jesse
3 frank
dtype: object
转换成大写 丨str.upper()
s1.str.upper()
0 JACK
1 JILL
2 JESSE
3 FRANK
dtype: object
格式化
name = '张三'
area = '中国'
weight = 60
height = 170
print('姓名%s,来自%s,体重%i,身高%i' %(name,area,weight,height))
print('姓名%s,来自%s,体重%.2f,身高%.2f' %(name,area,weight,height))
姓名张三,来自中国,体重60,身高170
姓名张三,来自中国,体重60.00,身高170.00
删除行列
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.normal(10,2,(4,4)),columns=['A','B','C','D'])
df
|
A |
B |
C |
D |
0 |
8.115084 |
6.508914 |
7.958109 |
9.675862 |
1 |
8.684058 |
10.844226 |
11.248047 |
11.003280 |
2 |
11.682869 |
6.719500 |
12.116010 |
9.816431 |
3 |
8.551931 |
9.199079 |
10.890649 |
11.919879 |
df.drop('A',axis=1)
|
B |
C |
D |
0 |
6.508914 |
7.958109 |
9.675862 |
1 |
10.844226 |
11.248047 |
11.003280 |
2 |
6.719500 |
12.116010 |
9.816431 |
3 |
9.199079 |
10.890649 |
11.919879 |
df.drop('A',axis=1,inplace=True)
df.drop(1)
|
B |
C |
D |
0 |
6.508914 |
7.958109 |
9.675862 |
2 |
6.719500 |
12.116010 |
9.816431 |
3 |
9.199079 |
10.890649 |
11.919879 |
更改列名 丨★★★
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.normal(10,2,(4,4)),columns=['A','B','C','D'])
df
|
A |
B |
C |
D |
0 |
7.307292 |
14.037799 |
12.164753 |
6.428564 |
1 |
9.455326 |
9.419263 |
13.312294 |
7.530863 |
2 |
7.884631 |
10.276828 |
9.828200 |
9.727539 |
3 |
7.725770 |
11.276272 |
9.016792 |
7.507430 |
df.columns= ['a','b','c','d']
df
|
a |
b |
c |
d |
0 |
7.307292 |
14.037799 |
12.164753 |
6.428564 |
1 |
9.455326 |
9.419263 |
13.312294 |
7.530863 |
2 |
7.884631 |
10.276828 |
9.828200 |
9.727539 |
3 |
7.725770 |
11.276272 |
9.016792 |
7.507430 |
df.rename(columns = {'a':'aa'},inplace=True)
df
|
aa |
b |
c |
d |
0 |
7.307292 |
14.037799 |
12.164753 |
6.428564 |
1 |
9.455326 |
9.419263 |
13.312294 |
7.530863 |
2 |
7.884631 |
10.276828 |
9.828200 |
9.727539 |
3 |
7.725770 |
11.276272 |
9.016792 |
7.507430 |
改变列的格式 丨★★
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(5,3),columns=['A','B','C'])
df
|
A |
B |
C |
0 |
0.224873 |
0.114649 |
0.583017 |
1 |
0.232641 |
0.556518 |
0.523811 |
2 |
0.350958 |
0.705332 |
0.820704 |
3 |
0.134563 |
0.604726 |
0.283148 |
4 |
0.506408 |
0.038460 |
0.332444 |
df['A'] = df['A'].astype('str')
df.dtypes
A object
B float64
C float64
dtype: object
df['A'].sum()
'0.224872802469813340.232641062735879140.3509582237713720.134563003464316160.5064078198775632'
df['B'].sum()
2.01968518853518
df['B%'] = df['B'].apply(lambda x: '%.2f%%' % (x*100))
df
|
A |
B |
C |
B% |
0 |
0.22487280246981334 |
0.114649 |
0.583017 |
11.46% |
1 |
0.23264106273587914 |
0.556518 |
0.523811 |
55.65% |
2 |
0.350958223771372 |
0.705332 |
0.820704 |
70.53% |
3 |
0.13456300346431616 |
0.604726 |
0.283148 |
60.47% |
4 |
0.5064078198775632 |
0.038460 |
0.332444 |
3.85% |
索引
设置索引丨set_index() 丨★
from faker import Faker
fake=Faker(locale='zh_CN')
Faker.seed(10000)
import pandas as pd
import numpy as np
import random
random.seed(10000)
data = pd.DataFrame()
for i in range(100):
datai = pd.DataFrame({'编号': "N2020_%d" % (i),
'姓名':fake.name(),
'性别':np.random.choice(['男','女']),
'省份':fake.province(),
'公司':fake.company(),
'身份证号':fake.ssn(),
'邮箱':fake.safe_email(),
'手机号':fake.phone_number(),
'年龄':np.random.randint(30,50,1),
'完成率':np.random.random(),
'日期':fake.date_time(),
'销售':fake.numerify()},
index = [i])
data = data.append(datai)
data.head()
|
编号 |
姓名 |
性别 |
省份 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
日期 |
销售 |
0 |
N2020_0 |
范金凤 |
女 |
四川省 |
方正科技信息有限公司 |
320401200112288520 |
[email protected] |
13104093059 |
33 |
0.377441 |
2009-06-28 16:36:39 |
488 |
1 |
N2020_1 |
李平 |
男 |
北京市 |
东方峻景科技有限公司 |
623001196812267643 |
[email protected] |
14558214788 |
43 |
0.064251 |
2009-11-25 07:11:24 |
616 |
2 |
N2020_2 |
李林 |
男 |
福建省 |
昊嘉传媒有限公司 |
131000193309129587 |
[email protected] |
15872567938 |
43 |
0.495049 |
1992-05-08 23:04:30 |
835 |
3 |
N2020_3 |
王玉华 |
女 |
台湾省 |
商软冠联网络有限公司 |
340822198708022149 |
[email protected] |
18651489092 |
35 |
0.340037 |
1990-02-22 12:35:34 |
589 |
4 |
N2020_4 |
赵平 |
女 |
天津市 |
商软冠联传媒有限公司 |
33070219791019772X |
[email protected] |
18027050254 |
41 |
0.578136 |
2013-12-02 20:31:27 |
922 |
data1 = data.set_index('省份')
data1.head()
|
编号 |
姓名 |
性别 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
日期 |
销售 |
省份 |
|
|
|
|
|
|
|
|
|
|
|
四川省 |
N2020_0 |
范金凤 |
女 |
方正科技信息有限公司 |
320401200112288520 |
[email protected] |
13104093059 |
33 |
0.377441 |
2009-06-28 16:36:39 |
488 |
北京市 |
N2020_1 |
李平 |
男 |
东方峻景科技有限公司 |
623001196812267643 |
[email protected] |
14558214788 |
43 |
0.064251 |
2009-11-25 07:11:24 |
616 |
福建省 |
N2020_2 |
李林 |
男 |
昊嘉传媒有限公司 |
131000193309129587 |
[email protected] |
15872567938 |
43 |
0.495049 |
1992-05-08 23:04:30 |
835 |
台湾省 |
N2020_3 |
王玉华 |
女 |
商软冠联网络有限公司 |
340822198708022149 |
[email protected] |
18651489092 |
35 |
0.340037 |
1990-02-22 12:35:34 |
589 |
天津市 |
N2020_4 |
赵平 |
女 |
商软冠联传媒有限公司 |
33070219791019772X |
[email protected] |
18027050254 |
41 |
0.578136 |
2013-12-02 20:31:27 |
922 |
data2 = data.set_index(['省份','姓名'])
data2.head()
|
|
编号 |
性别 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
日期 |
销售 |
省份 |
姓名 |
|
|
|
|
|
|
|
|
|
|
四川省 |
范金凤 |
N2020_0 |
女 |
方正科技信息有限公司 |
320401200112288520 |
[email protected] |
13104093059 |
33 |
0.377441 |
2009-06-28 16:36:39 |
488 |
北京市 |
李平 |
N2020_1 |
男 |
东方峻景科技有限公司 |
623001196812267643 |
[email protected] |
14558214788 |
43 |
0.064251 |
2009-11-25 07:11:24 |
616 |
福建省 |
李林 |
N2020_2 |
男 |
昊嘉传媒有限公司 |
131000193309129587 |
[email protected] |
15872567938 |
43 |
0.495049 |
1992-05-08 23:04:30 |
835 |
台湾省 |
王玉华 |
N2020_3 |
女 |
商软冠联网络有限公司 |
340822198708022149 |
[email protected] |
18651489092 |
35 |
0.340037 |
1990-02-22 12:35:34 |
589 |
天津市 |
赵平 |
N2020_4 |
女 |
商软冠联传媒有限公司 |
33070219791019772X |
[email protected] |
18027050254 |
41 |
0.578136 |
2013-12-02 20:31:27 |
922 |
重置索引丨reset_index() 丨★
data1.reset_index().head()
|
省份 |
编号 |
姓名 |
性别 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
日期 |
销售 |
0 |
四川省 |
N2020_0 |
范金凤 |
女 |
方正科技信息有限公司 |
320401200112288520 |
[email protected] |
13104093059 |
33 |
0.377441 |
2009-06-28 16:36:39 |
488 |
1 |
北京市 |
N2020_1 |
李平 |
男 |
东方峻景科技有限公司 |
623001196812267643 |
[email protected] |
14558214788 |
43 |
0.064251 |
2009-11-25 07:11:24 |
616 |
2 |
福建省 |
N2020_2 |
李林 |
男 |
昊嘉传媒有限公司 |
131000193309129587 |
[email protected] |
15872567938 |
43 |
0.495049 |
1992-05-08 23:04:30 |
835 |
3 |
台湾省 |
N2020_3 |
王玉华 |
女 |
商软冠联网络有限公司 |
340822198708022149 |
[email protected] |
18651489092 |
35 |
0.340037 |
1990-02-22 12:35:34 |
589 |
4 |
天津市 |
N2020_4 |
赵平 |
女 |
商软冠联传媒有限公司 |
33070219791019772X |
[email protected] |
18027050254 |
41 |
0.578136 |
2013-12-02 20:31:27 |
922 |
data2.reset_index(level=1).head()
|
姓名 |
编号 |
性别 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
日期 |
销售 |
省份 |
|
|
|
|
|
|
|
|
|
|
|
四川省 |
范金凤 |
N2020_0 |
女 |
方正科技信息有限公司 |
320401200112288520 |
[email protected] |
13104093059 |
33 |
0.377441 |
2009-06-28 16:36:39 |
488 |
北京市 |
李平 |
N2020_1 |
男 |
东方峻景科技有限公司 |
623001196812267643 |
[email protected] |
14558214788 |
43 |
0.064251 |
2009-11-25 07:11:24 |
616 |
福建省 |
李林 |
N2020_2 |
男 |
昊嘉传媒有限公司 |
131000193309129587 |
[email protected] |
15872567938 |
43 |
0.495049 |
1992-05-08 23:04:30 |
835 |
台湾省 |
王玉华 |
N2020_3 |
女 |
商软冠联网络有限公司 |
340822198708022149 |
[email protected] |
18651489092 |
35 |
0.340037 |
1990-02-22 12:35:34 |
589 |
天津市 |
赵平 |
N2020_4 |
女 |
商软冠联传媒有限公司 |
33070219791019772X |
[email protected] |
18027050254 |
41 |
0.578136 |
2013-12-02 20:31:27 |
922 |
更新索引丨reindex() 丨★
data3 = data.head()
data3
|
编号 |
姓名 |
性别 |
省份 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
日期 |
销售 |
0 |
N2020_0 |
范金凤 |
女 |
四川省 |
方正科技信息有限公司 |
320401200112288520 |
[email protected] |
13104093059 |
33 |
0.377441 |
2009-06-28 16:36:39 |
488 |
1 |
N2020_1 |
李平 |
男 |
北京市 |
东方峻景科技有限公司 |
623001196812267643 |
[email protected] |
14558214788 |
43 |
0.064251 |
2009-11-25 07:11:24 |
616 |
2 |
N2020_2 |
李林 |
男 |
福建省 |
昊嘉传媒有限公司 |
131000193309129587 |
[email protected] |
15872567938 |
43 |
0.495049 |
1992-05-08 23:04:30 |
835 |
3 |
N2020_3 |
王玉华 |
女 |
台湾省 |
商软冠联网络有限公司 |
340822198708022149 |
[email protected] |
18651489092 |
35 |
0.340037 |
1990-02-22 12:35:34 |
589 |
4 |
N2020_4 |
赵平 |
女 |
天津市 |
商软冠联传媒有限公司 |
33070219791019772X |
[email protected] |
18027050254 |
41 |
0.578136 |
2013-12-02 20:31:27 |
922 |
data3.reindex([2,3,0,1,4],fill_value=0)
|
编号 |
姓名 |
性别 |
省份 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
日期 |
销售 |
2 |
N2020_2 |
李林 |
男 |
福建省 |
昊嘉传媒有限公司 |
131000193309129587 |
[email protected] |
15872567938 |
43 |
0.495049 |
1992-05-08 23:04:30 |
835 |
3 |
N2020_3 |
王玉华 |
女 |
台湾省 |
商软冠联网络有限公司 |
340822198708022149 |
[email protected] |
18651489092 |
35 |
0.340037 |
1990-02-22 12:35:34 |
589 |
0 |
N2020_0 |
范金凤 |
女 |
四川省 |
方正科技信息有限公司 |
320401200112288520 |
[email protected] |
13104093059 |
33 |
0.377441 |
2009-06-28 16:36:39 |
488 |
1 |
N2020_1 |
李平 |
男 |
北京市 |
东方峻景科技有限公司 |
623001196812267643 |
[email protected] |
14558214788 |
43 |
0.064251 |
2009-11-25 07:11:24 |
616 |
4 |
N2020_4 |
赵平 |
女 |
天津市 |
商软冠联传媒有限公司 |
33070219791019772X |
[email protected] |
18027050254 |
41 |
0.578136 |
2013-12-02 20:31:27 |
922 |
索引排序丨sort_index()
data1.sort_index(ascending=False).head()
|
编号 |
姓名 |
性别 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
日期 |
销售 |
省份 |
|
|
|
|
|
|
|
|
|
|
|
黑龙江省 |
N2020_75 |
刘鑫 |
女 |
超艺传媒有限公司 |
210701194711181795 |
[email protected] |
13228202589 |
47 |
0.974812 |
1974-12-29 11:36:42 |
155 |
黑龙江省 |
N2020_55 |
蒋文 |
男 |
惠派国际公司信息有限公司 |
52272619661221162X |
[email protected] |
18636530837 |
42 |
0.304991 |
1971-10-22 00:37:03 |
259 |
黑龙江省 |
N2020_18 |
郑敏 |
男 |
彩虹信息有限公司 |
410200194702267611 |
[email protected] |
15646946384 |
46 |
0.381412 |
1997-04-21 04:29:16 |
132 |
香港特别行政区 |
N2020_39 |
高洁 |
男 |
商软冠联信息有限公司 |
50011519990112238X |
[email protected] |
13209584706 |
34 |
0.017030 |
1999-07-18 21:25:45 |
699 |
香港特别行政区 |
N2020_19 |
梁雪 |
男 |
银嘉科技有限公司 |
330825197106213864 |
[email protected] |
13488583474 |
38 |
0.925357 |
1981-10-04 09:20:40 |
994 |
data2.sort_index(level=1,ascending=False).head()
|
|
编号 |
性别 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
日期 |
销售 |
省份 |
姓名 |
|
|
|
|
|
|
|
|
|
|
台湾省 |
黄燕 |
N2020_87 |
女 |
易动力传媒有限公司 |
370829199012030735 |
[email protected] |
13242323364 |
31 |
0.471365 |
1985-08-17 18:52:10 |
408 |
西藏自治区 |
黄峰 |
N2020_13 |
男 |
良诺科技有限公司 |
510801193903095981 |
[email protected] |
15660156361 |
36 |
0.986889 |
2016-03-23 15:45:29 |
291 |
宁夏回族自治区 |
黄丽丽 |
N2020_11 |
女 |
华远软件传媒有限公司 |
510114196409150161 |
[email protected] |
18137834227 |
37 |
0.885827 |
1987-08-14 18:46:45 |
382 |
香港特别行政区 |
高洁 |
N2020_39 |
男 |
商软冠联信息有限公司 |
50011519990112238X |
[email protected] |
13209584706 |
34 |
0.017030 |
1999-07-18 21:25:45 |
699 |
江苏省 |
马彬 |
N2020_45 |
女 |
凌云信息有限公司 |
36073319691231944X |
[email protected] |
13578076912 |
43 |
0.573776 |
1990-01-29 02:45:42 |
160 |
data2.sort_index(level=[0,1],ascending=[False,False]).head()
|
|
编号 |
性别 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
日期 |
销售 |
省份 |
姓名 |
|
|
|
|
|
|
|
|
|
|
黑龙江省 |
郑敏 |
N2020_18 |
男 |
彩虹信息有限公司 |
410200194702267611 |
[email protected] |
15646946384 |
46 |
0.381412 |
1997-04-21 04:29:16 |
132 |
蒋文 |
N2020_55 |
男 |
惠派国际公司信息有限公司 |
52272619661221162X |
[email protected] |
18636530837 |
42 |
0.304991 |
1971-10-22 00:37:03 |
259 |
刘鑫 |
N2020_75 |
女 |
超艺传媒有限公司 |
210701194711181795 |
[email protected] |
13228202589 |
47 |
0.974812 |
1974-12-29 11:36:42 |
155 |
香港特别行政区 |
高洁 |
N2020_39 |
男 |
商软冠联信息有限公司 |
50011519990112238X |
[email protected] |
13209584706 |
34 |
0.017030 |
1999-07-18 21:25:45 |
699 |
梁雪 |
N2020_19 |
男 |
银嘉科技有限公司 |
330825197106213864 |
[email protected] |
13488583474 |
38 |
0.925357 |
1981-10-04 09:20:40 |
994 |
数据筛选
from faker import Faker
fake=Faker(locale='zh_CN')
Faker.seed(10000)
import pandas as pd
import numpy as np
import random
random.seed(10000)
data = pd.DataFrame()
for i in range(100):
datai = pd.DataFrame({'编号': "N2020_%d" % (i),
'姓名':fake.name(),
'性别':np.random.choice(['男','女']),
'省份':fake.province(),
'公司':fake.company(),
'身份证号':fake.ssn(),
'邮箱':fake.safe_email(),
'手机号':fake.phone_number(),
'年龄':np.random.randint(30,50,1),
'完成率':np.random.random(),
'日期':fake.date_time(),
'销售':fake.numerify()},
index = [i])
data = data.append(datai)
data.head()
data.to_excel('C:/Users/users/Desktop/Python课件/课件编写/data/p4_数据清洗2.xlsx')
筛选列 丨★★
data['姓名'].head(10)
0 范金凤
1 李平
2 李林
3 王玉华
4 赵平
5 陈桂花
6 韦亮
7 钟瑜
8 刘桂花
9 刘桂花
Name: 姓名, dtype: object
data[['姓名', '省份']].head(10)
|
姓名 |
省份 |
0 |
范金凤 |
四川省 |
1 |
李平 |
北京市 |
2 |
李林 |
福建省 |
3 |
王玉华 |
台湾省 |
4 |
赵平 |
天津市 |
5 |
陈桂花 |
河南省 |
6 |
韦亮 |
福建省 |
7 |
钟瑜 |
新疆维吾尔自治区 |
8 |
刘桂花 |
山东省 |
9 |
刘桂花 |
辽宁省 |
筛选行
data[data['省份']=='北京市']
|
编号 |
姓名 |
性别 |
省份 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
日期 |
销售 |
1 |
N2020_1 |
李平 |
男 |
北京市 |
东方峻景科技有限公司 |
623001196812267643 |
[email protected] |
14558214788 |
46 |
0.057950 |
2009-11-25 07:11:24 |
616 |
23 |
N2020_23 |
李慧 |
女 |
北京市 |
巨奥信息有限公司 |
450223196310134685 |
[email protected] |
18597786292 |
34 |
0.710752 |
1971-10-30 04:34:58 |
785 |
data[(data['性别']=='男')&(data['省份']=='四川省')]
|
编号 |
姓名 |
性别 |
省份 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
日期 |
销售 |
29 |
N2020_29 |
温云 |
男 |
四川省 |
创汇传媒有限公司 |
411621195006187174 |
[email protected] |
15764016109 |
30 |
0.037330 |
1995-07-27 08:30:33 |
005 |
52 |
N2020_52 |
陈秀梅 |
男 |
四川省 |
艾提科信科技有限公司 |
621022196409096901 |
[email protected] |
18797029868 |
36 |
0.735764 |
2014-02-16 02:19:28 |
005 |
56 |
N2020_56 |
徐艳 |
男 |
四川省 |
超艺网络有限公司 |
230404195602088429 |
[email protected] |
15730053639 |
36 |
0.285640 |
1977-07-27 07:27:07 |
782 |
71 |
N2020_71 |
韩凤英 |
男 |
四川省 |
网新恒天网络有限公司 |
152202194306033785 |
[email protected] |
13699762247 |
39 |
0.089812 |
2019-06-26 04:44:02 |
760 |
根据内容精确匹配丨isin() 丨★★
data[data['省份'].isin(['山东省','四川省'])].head()
|
编号 |
姓名 |
性别 |
省份 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
日期 |
销售 |
0 |
N2020_0 |
范金凤 |
女 |
四川省 |
方正科技信息有限公司 |
320401200112288520 |
[email protected] |
13104093059 |
41 |
0.700930 |
2009-06-28 16:36:39 |
488 |
8 |
N2020_8 |
刘桂花 |
男 |
山东省 |
恩悌网络有限公司 |
230184197702140647 |
[email protected] |
13310655117 |
34 |
0.516789 |
2015-09-29 16:21:28 |
439 |
29 |
N2020_29 |
温云 |
男 |
四川省 |
创汇传媒有限公司 |
411621195006187174 |
[email protected] |
15764016109 |
30 |
0.037330 |
1995-07-27 08:30:33 |
005 |
35 |
N2020_35 |
宋楠 |
男 |
山东省 |
恒聪百汇网络有限公司 |
370213199602238217 |
[email protected] |
13027921428 |
47 |
0.253179 |
1980-10-16 17:48:44 |
451 |
52 |
N2020_52 |
陈秀梅 |
男 |
四川省 |
艾提科信科技有限公司 |
621022196409096901 |
[email protected] |
18797029868 |
36 |
0.735764 |
2014-02-16 02:19:28 |
005 |
data[data['年龄'].isin([35,36,38])].head()
|
编号 |
姓名 |
性别 |
省份 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
日期 |
销售 |
4 |
N2020_4 |
赵平 |
女 |
天津市 |
商软冠联传媒有限公司 |
33070219791019772X |
[email protected] |
18027050254 |
38 |
0.160348 |
2013-12-02 20:31:27 |
922 |
5 |
N2020_5 |
陈桂花 |
女 |
河南省 |
华泰通安科技有限公司 |
51343219440729157X |
[email protected] |
15115129137 |
35 |
0.176635 |
2011-04-05 20:09:54 |
006 |
6 |
N2020_6 |
韦亮 |
女 |
福建省 |
合联电子科技有限公司 |
610730195403213354 |
[email protected] |
13680169513 |
36 |
0.713555 |
1988-09-08 02:15:10 |
769 |
7 |
N2020_7 |
钟瑜 |
女 |
新疆维吾尔自治区 |
浙大万朋传媒有限公司 |
632823199206261862 |
[email protected] |
15636503787 |
35 |
0.615502 |
2010-03-08 11:00:32 |
435 |
10 |
N2020_10 |
林秀兰 |
男 |
吉林省 |
恩悌科技有限公司 |
532524196805192224 |
[email protected] |
14522841055 |
38 |
0.535469 |
1970-02-01 06:55:39 |
602 |
根据内容模糊匹配丨str.contains() 丨★★
data[data['公司'].str.contains('动力')].head()
|
编号 |
姓名 |
性别 |
省份 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
日期 |
销售 |
21 |
N2020_21 |
方琳 |
男 |
青海省 |
易动力网络有限公司 |
130481196911267803 |
[email protected] |
14509729550 |
32 |
0.754724 |
2017-12-27 19:42:26 |
277 |
37 |
N2020_37 |
王梅 |
女 |
辽宁省 |
易动力科技有限公司 |
370812194801193481 |
[email protected] |
18574736528 |
46 |
0.706331 |
1972-03-16 17:56:14 |
810 |
62 |
N2020_62 |
陈梅 |
女 |
四川省 |
易动力网络有限公司 |
341126199909224292 |
[email protected] |
13818527086 |
34 |
0.969633 |
1970-02-04 14:33:40 |
411 |
87 |
N2020_87 |
黄燕 |
女 |
台湾省 |
易动力传媒有限公司 |
370829199012030735 |
[email protected] |
13242323364 |
44 |
0.975404 |
1985-08-17 18:52:10 |
408 |
94 |
N2020_94 |
余建 |
女 |
西藏自治区 |
易动力网络有限公司 |
500120197803071859 |
[email protected] |
13304313249 |
32 |
0.055106 |
2008-05-29 04:44:57 |
194 |
data[data['公司'].str.contains('计算机|动力')].head()
|
编号 |
姓名 |
性别 |
省份 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
日期 |
销售 |
21 |
N2020_21 |
方琳 |
男 |
青海省 |
易动力网络有限公司 |
130481196911267803 |
[email protected] |
14509729550 |
32 |
0.754724 |
2017-12-27 19:42:26 |
277 |
37 |
N2020_37 |
王梅 |
女 |
辽宁省 |
易动力科技有限公司 |
370812194801193481 |
[email protected] |
18574736528 |
46 |
0.706331 |
1972-03-16 17:56:14 |
810 |
62 |
N2020_62 |
陈梅 |
女 |
四川省 |
易动力网络有限公司 |
341126199909224292 |
[email protected] |
13818527086 |
34 |
0.969633 |
1970-02-04 14:33:40 |
411 |
70 |
N2020_70 |
徐涛 |
女 |
四川省 |
晖来计算机信息有限公司 |
441201195906202227 |
[email protected] |
13422409521 |
36 |
0.353785 |
1994-04-02 12:23:33 |
743 |
87 |
N2020_87 |
黄燕 |
女 |
台湾省 |
易动力传媒有限公司 |
370829199012030735 |
[email protected] |
13242323364 |
44 |
0.975404 |
1985-08-17 18:52:10 |
408 |
根据字符串长度 丨str.len()
s1.str.len()
0 5
1 5
2 7
3 5
dtype: int64
根据字符串形式 丨str.is*() 丨★★★
df = pd.DataFrame({'值':['HELLO','world','China','Python',' ','10',100,'字符串','data',np.nan]})
df
|
值 |
0 |
HELLO |
1 |
world |
2 |
China |
3 |
Python |
4 |
|
5 |
10 |
6 |
100 |
7 |
字符串 |
8 |
data |
9 |
NaN |
df['字符串数值或者字母'] = df['值'].str.isalnum()
df
|
值 |
字符串数值或者字母 |
0 |
HELLO |
True |
1 |
world |
True |
2 |
China |
True |
3 |
Python |
True |
4 |
|
False |
5 |
10 |
True |
6 |
100 |
NaN |
7 |
字符串 |
True |
8 |
data |
True |
9 |
NaN |
NaN |
df['字母'] = df['值'].str.isalpha()
df
|
值 |
字符串数值或者字母 |
字母 |
0 |
HELLO |
True |
True |
1 |
world |
True |
True |
2 |
China |
True |
True |
3 |
Python |
True |
True |
4 |
|
False |
False |
5 |
10 |
True |
False |
6 |
100 |
NaN |
NaN |
7 |
字符串 |
True |
True |
8 |
data |
True |
True |
9 |
NaN |
NaN |
NaN |
df['字符串数字'] = df['值'].str.isdigit()
df
|
值 |
字符串数值或者字母 |
字母 |
字符串数字 |
0 |
HELLO |
True |
True |
False |
1 |
world |
True |
True |
False |
2 |
China |
True |
True |
False |
3 |
Python |
True |
True |
False |
4 |
|
False |
False |
False |
5 |
10 |
True |
False |
True |
6 |
100 |
NaN |
NaN |
NaN |
7 |
字符串 |
True |
True |
False |
8 |
data |
True |
True |
False |
9 |
NaN |
NaN |
NaN |
NaN |
df['小写字母'] = df['值'].str.islower()
df
|
值 |
字符串数值或者字母 |
字母 |
字符串数字 |
小写字母 |
0 |
HELLO |
True |
True |
False |
False |
1 |
world |
True |
True |
False |
True |
2 |
China |
True |
True |
False |
False |
3 |
Python |
True |
True |
False |
False |
4 |
|
False |
False |
False |
False |
5 |
10 |
True |
False |
True |
False |
6 |
100 |
NaN |
NaN |
NaN |
NaN |
7 |
字符串 |
True |
True |
False |
False |
8 |
data |
True |
True |
False |
True |
9 |
NaN |
NaN |
NaN |
NaN |
NaN |
df['大写字母'] = df['值'].str.isupper()
df
|
值 |
字符串数值或者字母 |
字母 |
字符串数字 |
小写字母 |
大写字母 |
0 |
HELLO |
True |
True |
False |
False |
True |
1 |
world |
True |
True |
False |
True |
False |
2 |
China |
True |
True |
False |
False |
False |
3 |
Python |
True |
True |
False |
False |
False |
4 |
|
False |
False |
False |
False |
False |
5 |
10 |
True |
False |
True |
False |
False |
6 |
100 |
NaN |
NaN |
NaN |
NaN |
NaN |
7 |
字符串 |
True |
True |
False |
False |
False |
8 |
data |
True |
True |
False |
True |
False |
9 |
NaN |
NaN |
NaN |
NaN |
NaN |
NaN |
df['首字母大写'] = df['值'].str.istitle()
df
|
值 |
字符串数值或者字母 |
字母 |
字符串数字 |
小写字母 |
大写字母 |
首字母大写 |
0 |
HELLO |
True |
True |
False |
False |
True |
False |
1 |
world |
True |
True |
False |
True |
False |
False |
2 |
China |
True |
True |
False |
False |
False |
True |
3 |
Python |
True |
True |
False |
False |
False |
True |
4 |
|
False |
False |
False |
False |
False |
False |
5 |
10 |
True |
False |
True |
False |
False |
False |
6 |
100 |
NaN |
NaN |
NaN |
NaN |
NaN |
NaN |
7 |
字符串 |
True |
True |
False |
False |
False |
False |
8 |
data |
True |
True |
False |
True |
False |
False |
9 |
NaN |
NaN |
NaN |
NaN |
NaN |
NaN |
NaN |
df['空格'] = df['值'].str.isspace()
df
|
值 |
字符串数值或者字母 |
字母 |
字符串数字 |
小写字母 |
大写字母 |
首字母大写 |
空格 |
0 |
HELLO |
True |
True |
False |
False |
True |
False |
False |
1 |
world |
True |
True |
False |
True |
False |
False |
False |
2 |
China |
True |
True |
False |
False |
False |
True |
False |
3 |
Python |
True |
True |
False |
False |
False |
True |
False |
4 |
|
False |
False |
False |
False |
False |
False |
True |
5 |
10 |
True |
False |
True |
False |
False |
False |
False |
6 |
100 |
NaN |
NaN |
NaN |
NaN |
NaN |
NaN |
NaN |
7 |
字符串 |
True |
True |
False |
False |
False |
False |
False |
8 |
data |
True |
True |
False |
True |
False |
False |
False |
9 |
NaN |
NaN |
NaN |
NaN |
NaN |
NaN |
NaN |
NaN |
分组后筛选丨groupby() 丨★★
data.sort_values(by='年龄').groupby('省份',as_index=False).first().head()
|
省份 |
编号 |
姓名 |
性别 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
日期 |
销售 |
0 |
上海市 |
N2020_73 |
卢丹 |
女 |
盟新科技有限公司 |
370202194101232333 |
[email protected] |
15682747497 |
35 |
0.691084 |
2019-10-02 12:23:51 |
761 |
1 |
云南省 |
N2020_97 |
陈帅 |
男 |
商软冠联网络有限公司 |
46902319400324717X |
[email protected] |
14529122727 |
37 |
0.635785 |
2007-05-29 09:35:04 |
564 |
2 |
内蒙古自治区 |
N2020_47 |
谭利 |
女 |
时刻网络有限公司 |
140321194101147472 |
[email protected] |
13363990254 |
32 |
0.910402 |
2011-11-03 00:34:49 |
373 |
3 |
北京市 |
N2020_23 |
李慧 |
女 |
巨奥信息有限公司 |
450223196310134685 |
[email protected] |
18597786292 |
34 |
0.710752 |
1971-10-30 04:34:58 |
785 |
4 |
台湾省 |
N2020_61 |
曹凯 |
女 |
南康科技有限公司 |
150502196806098191 |
[email protected] |
13262601832 |
31 |
0.622077 |
1983-02-03 04:28:03 |
913 |
data.groupby('省份',as_index=False).apply(lambda x: x[x['完成率']>0.95]).head()
|
|
编号 |
姓名 |
性别 |
省份 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
日期 |
销售 |
4 |
87 |
N2020_87 |
黄燕 |
女 |
台湾省 |
易动力传媒有限公司 |
370829199012030735 |
[email protected] |
13242323364 |
44 |
0.975404 |
1985-08-17 18:52:10 |
408 |
5 |
33 |
N2020_33 |
冯璐 |
女 |
吉林省 |
太极科技有限公司 |
411381195107138515 |
[email protected] |
13982410034 |
31 |
0.981835 |
2017-07-01 01:55:38 |
507 |
6 |
62 |
N2020_62 |
陈梅 |
女 |
四川省 |
易动力网络有限公司 |
341126199909224292 |
[email protected] |
13818527086 |
34 |
0.969633 |
1970-02-04 14:33:40 |
411 |
9 |
51 |
N2020_51 |
李伟 |
男 |
安徽省 |
商软冠联网络有限公司 |
530701193409160440 |
[email protected] |
15322916084 |
34 |
0.982004 |
2006-04-29 07:34:08 |
977 |
15 |
96 |
N2020_96 |
李淑华 |
女 |
江西省 |
襄樊地球村信息有限公司 |
542431194904214928 |
[email protected] |
13447067886 |
31 |
0.966989 |
1977-11-06 19:40:07 |
529 |
loc()
data.loc[data['省份']=='四川省'].head()
|
编号 |
姓名 |
性别 |
省份 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
日期 |
销售 |
0 |
N2020_0 |
范金凤 |
女 |
四川省 |
方正科技信息有限公司 |
320401200112288520 |
[email protected] |
13104093059 |
41 |
0.700930 |
2009-06-28 16:36:39 |
488 |
29 |
N2020_29 |
温云 |
男 |
四川省 |
创汇传媒有限公司 |
411621195006187174 |
[email protected] |
15764016109 |
30 |
0.037330 |
1995-07-27 08:30:33 |
005 |
52 |
N2020_52 |
陈秀梅 |
男 |
四川省 |
艾提科信科技有限公司 |
621022196409096901 |
[email protected] |
18797029868 |
36 |
0.735764 |
2014-02-16 02:19:28 |
005 |
56 |
N2020_56 |
徐艳 |
男 |
四川省 |
超艺网络有限公司 |
230404195602088429 |
[email protected] |
15730053639 |
36 |
0.285640 |
1977-07-27 07:27:07 |
782 |
62 |
N2020_62 |
陈梅 |
女 |
四川省 |
易动力网络有限公司 |
341126199909224292 |
[email protected] |
13818527086 |
34 |
0.969633 |
1970-02-04 14:33:40 |
411 |
data.loc[data['年龄']>35].head()
|
编号 |
姓名 |
性别 |
省份 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
日期 |
销售 |
0 |
N2020_0 |
范金凤 |
女 |
四川省 |
方正科技信息有限公司 |
320401200112288520 |
[email protected] |
13104093059 |
41 |
0.700930 |
2009-06-28 16:36:39 |
488 |
1 |
N2020_1 |
李平 |
男 |
北京市 |
东方峻景科技有限公司 |
623001196812267643 |
[email protected] |
14558214788 |
46 |
0.057950 |
2009-11-25 07:11:24 |
616 |
3 |
N2020_3 |
王玉华 |
男 |
台湾省 |
商软冠联网络有限公司 |
340822198708022149 |
[email protected] |
18651489092 |
49 |
0.449515 |
1990-02-22 12:35:34 |
589 |
4 |
N2020_4 |
赵平 |
女 |
天津市 |
商软冠联传媒有限公司 |
33070219791019772X |
[email protected] |
18027050254 |
38 |
0.160348 |
2013-12-02 20:31:27 |
922 |
6 |
N2020_6 |
韦亮 |
女 |
福建省 |
合联电子科技有限公司 |
610730195403213354 |
[email protected] |
13680169513 |
36 |
0.713555 |
1988-09-08 02:15:10 |
769 |
data.loc[data['年龄']>35,['姓名','销售']].head()
|
姓名 |
销售 |
0 |
范金凤 |
488 |
1 |
李平 |
616 |
3 |
王玉华 |
589 |
4 |
赵平 |
922 |
6 |
韦亮 |
769 |
iloc()
data.iloc[[2,3,5],[0,1,2]].head()
|
编号 |
姓名 |
性别 |
2 |
N2020_2 |
李林 |
男 |
3 |
N2020_3 |
王玉华 |
男 |
5 |
N2020_5 |
陈桂花 |
女 |
data.iloc[2:,[0,1,2]].head()
|
编号 |
姓名 |
性别 |
2 |
N2020_2 |
李林 |
男 |
3 |
N2020_3 |
王玉华 |
男 |
4 |
N2020_4 |
赵平 |
女 |
5 |
N2020_5 |
陈桂花 |
女 |
6 |
N2020_6 |
韦亮 |
女 |
data.iloc[[2,3,5],:].head()
|
编号 |
姓名 |
性别 |
省份 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
日期 |
销售 |
2 |
N2020_2 |
李林 |
男 |
福建省 |
昊嘉传媒有限公司 |
131000193309129587 |
[email protected] |
15872567938 |
31 |
0.648331 |
1992-05-08 23:04:30 |
835 |
3 |
N2020_3 |
王玉华 |
男 |
台湾省 |
商软冠联网络有限公司 |
340822198708022149 |
[email protected] |
18651489092 |
49 |
0.449515 |
1990-02-22 12:35:34 |
589 |
5 |
N2020_5 |
陈桂花 |
女 |
河南省 |
华泰通安科技有限公司 |
51343219440729157X |
[email protected] |
15115129137 |
35 |
0.176635 |
2011-04-05 20:09:54 |
006 |
数据排序
import pandas as pd
import numpy as np
df = pd.DataFrame({'animal': 'cat dog cat fish dog cat cat'.split(),
'size': list('SSMMMLL'),
'weight': [8, 10, 11, 1, 20, 12, 12],
'adult': [False] * 5 + [True] * 2})
df
|
animal |
size |
weight |
adult |
0 |
cat |
S |
8 |
False |
1 |
dog |
S |
10 |
False |
2 |
cat |
M |
11 |
False |
3 |
fish |
M |
1 |
False |
4 |
dog |
M |
20 |
False |
5 |
cat |
L |
12 |
True |
6 |
cat |
L |
12 |
True |
单个字段排序
df.sort_values('animal')
df.sort_values('animal',ascending=False)
|
animal |
size |
weight |
adult |
3 |
fish |
M |
1 |
False |
1 |
dog |
S |
10 |
False |
4 |
dog |
M |
20 |
False |
0 |
cat |
S |
8 |
False |
2 |
cat |
M |
11 |
False |
5 |
cat |
L |
12 |
True |
6 |
cat |
L |
12 |
True |
多个字段排序
df.sort_values(['animal','weight'],ascending=[True,False])
df.sort_values(['animal','weight'],ascending=False).head()
|
animal |
size |
weight |
adult |
3 |
fish |
M |
1 |
False |
4 |
dog |
M |
20 |
False |
1 |
dog |
S |
10 |
False |
5 |
cat |
L |
12 |
True |
6 |
cat |
L |
12 |
True |
日期数据
生成日期序列
import pandas as pd
dt1= pd.date_range('2018-01-01', periods=10, freq='D')
dt1
DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04',
'2018-01-05', '2018-01-06', '2018-01-07', '2018-01-08',
'2018-01-09', '2018-01-10'],
dtype='datetime64[ns]', freq='D')
dt2 = pd.period_range('1/1/2018', freq='D', periods=10)
dt2
PeriodIndex(['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04',
'2018-01-05', '2018-01-06', '2018-01-07', '2018-01-08',
'2018-01-09', '2018-01-10'],
dtype='period[D]', freq='D')
设置为日期格式丨★★★
import pandas as pd
import numpy as np
df = pd.DataFrame({'日期':['2020-3-1%i'% i for i in range(10)],
'值':np.random.randint(80,100,10)})
df.head()
|
日期 |
值 |
0 |
2020-3-10 |
82 |
1 |
2020-3-11 |
92 |
2 |
2020-3-12 |
89 |
3 |
2020-3-13 |
83 |
4 |
2020-3-14 |
87 |
df.dtypes
日期 object
值 int32
dtype: object
df['日期_to_datetime'] = pd.to_datetime(df['日期'])
df
|
日期 |
值 |
日期_to_datetime |
0 |
2020-3-10 |
82 |
2020-03-10 |
1 |
2020-3-11 |
92 |
2020-03-11 |
2 |
2020-3-12 |
89 |
2020-03-12 |
3 |
2020-3-13 |
83 |
2020-03-13 |
4 |
2020-3-14 |
87 |
2020-03-14 |
5 |
2020-3-15 |
89 |
2020-03-15 |
6 |
2020-3-16 |
92 |
2020-03-16 |
7 |
2020-3-17 |
85 |
2020-03-17 |
8 |
2020-3-18 |
87 |
2020-03-18 |
9 |
2020-3-19 |
88 |
2020-03-19 |
from datetime import datetime
df['日期_strptime'] = [datetime.strptime(x,'%Y-%m-%d') for x in df['日期']]
df['日期_strptime1'] = df['日期'].apply(lambda x: datetime.strptime(x,'%Y-%m-%d'))
df.head()
|
日期 |
值 |
日期_to_datetime |
日期_strptime |
日期_strptime1 |
0 |
2020-3-10 |
82 |
2020-03-10 |
2020-03-10 |
2020-03-10 |
1 |
2020-3-11 |
92 |
2020-03-11 |
2020-03-11 |
2020-03-11 |
2 |
2020-3-12 |
89 |
2020-03-12 |
2020-03-12 |
2020-03-12 |
3 |
2020-3-13 |
83 |
2020-03-13 |
2020-03-13 |
2020-03-13 |
4 |
2020-3-14 |
87 |
2020-03-14 |
2020-03-14 |
2020-03-14 |
df.dtypes
日期 object
值 int32
日期_to_datetime datetime64[ns]
日期_strptime datetime64[ns]
日期_strptime1 datetime64[ns]
dtype: object
计算日期间隔
from faker import Faker
fake=Faker(locale='zh_CN')
Faker.seed(10000)
import pandas as pd
import numpy as np
np.random.seed(10000)
data = pd.DataFrame()
for i in range(10):
datai = pd.DataFrame({'日期1': fake.date_time(),
'日期2':fake.date_time()},
index = [i])
data = data.append(datai)
data.head()
|
日期1 |
日期2 |
0 |
2009-04-30 04:12:39 |
1990-04-20 10:50:04 |
1 |
1972-06-24 22:03:04 |
2016-12-18 11:20:24 |
2 |
1978-02-20 20:28:27 |
2018-02-10 03:32:35 |
3 |
1971-09-20 13:10:15 |
2014-06-06 21:00:06 |
4 |
2012-09-25 11:13:48 |
1970-03-09 07:51:55 |
data['间隔'] = data['日期1'] - data['日期2']
data['间隔'] = data['间隔'].apply(lambda x: x.days)
data
|
日期1 |
日期2 |
间隔 |
0 |
2009-04-30 04:12:39 |
1990-04-20 10:50:04 |
6949 |
1 |
1972-06-24 22:03:04 |
2016-12-18 11:20:24 |
-16248 |
2 |
1978-02-20 20:28:27 |
2018-02-10 03:32:35 |
-14600 |
3 |
1971-09-20 13:10:15 |
2014-06-06 21:00:06 |
-15601 |
4 |
2012-09-25 11:13:48 |
1970-03-09 07:51:55 |
15541 |
5 |
1987-10-02 22:19:30 |
2004-05-07 06:11:36 |
-6062 |
6 |
1992-03-10 12:30:02 |
1981-12-14 19:46:38 |
3738 |
7 |
1977-02-15 06:07:52 |
2016-03-19 14:59:26 |
-14278 |
8 |
2008-10-18 14:07:05 |
1995-07-18 02:32:49 |
4841 |
9 |
1970-05-28 23:34:24 |
1990-11-12 11:48:09 |
-7473 |
data['间隔_re'] = list(map(lambda x: x.days, pd.to_datetime('today') - data['日期1']))
data.head()
|
日期1 |
日期2 |
间隔 |
间隔_re |
0 |
2009-04-30 04:12:39 |
1990-04-20 10:50:04 |
6949 |
3978 |
1 |
1972-06-24 22:03:04 |
2016-12-18 11:20:24 |
-16248 |
17436 |
2 |
1978-02-20 20:28:27 |
2018-02-10 03:32:35 |
-14600 |
15369 |
3 |
1971-09-20 13:10:15 |
2014-06-06 21:00:06 |
-15601 |
17714 |
4 |
2012-09-25 11:13:48 |
1970-03-09 07:51:55 |
15541 |
2734 |
格式化丨datetime.strftime() 丨★
import pandas as pd
import numpy as np
data = pd.read_excel('C:/Users/users/Desktop/Python课件/课件编写/data/p4_数据清洗2.xlsx',index_col=0)
data.head()
|
编号 |
姓名 |
性别 |
省份 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
日期 |
销售 |
0 |
N2020_0 |
范金凤 |
女 |
四川省 |
方正科技信息有限公司 |
320401200112288520 |
[email protected] |
13104093059 |
41 |
0.700930 |
2009-06-28 16:36:39 |
488 |
1 |
N2020_1 |
李平 |
男 |
北京市 |
东方峻景科技有限公司 |
623001196812267643 |
[email protected] |
14558214788 |
46 |
0.057950 |
2009-11-25 07:11:24 |
616 |
2 |
N2020_2 |
李林 |
男 |
福建省 |
昊嘉传媒有限公司 |
131000193309129587 |
[email protected] |
15872567938 |
31 |
0.648331 |
1992-05-08 23:04:30 |
835 |
3 |
N2020_3 |
王玉华 |
男 |
台湾省 |
商软冠联网络有限公司 |
340822198708022149 |
[email protected] |
18651489092 |
49 |
0.449515 |
1990-02-22 12:35:34 |
589 |
4 |
N2020_4 |
赵平 |
女 |
天津市 |
商软冠联传媒有限公司 |
33070219791019772X |
[email protected] |
18027050254 |
38 |
0.160348 |
2013-12-02 20:31:27 |
922 |
from datetime import datetime
data['日期_re'] = [datetime.strftime(x,'%Y-%m-%d') for x in data['日期']]
data.head()
|
编号 |
姓名 |
性别 |
省份 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
日期 |
销售 |
日期_re |
0 |
N2020_0 |
范金凤 |
女 |
四川省 |
方正科技信息有限公司 |
320401200112288520 |
[email protected] |
13104093059 |
41 |
0.700930 |
2009-06-28 16:36:39 |
488 |
2009-06-28 |
1 |
N2020_1 |
李平 |
男 |
北京市 |
东方峻景科技有限公司 |
623001196812267643 |
[email protected] |
14558214788 |
46 |
0.057950 |
2009-11-25 07:11:24 |
616 |
2009-11-25 |
2 |
N2020_2 |
李林 |
男 |
福建省 |
昊嘉传媒有限公司 |
131000193309129587 |
[email protected] |
15872567938 |
31 |
0.648331 |
1992-05-08 23:04:30 |
835 |
1992-05-08 |
3 |
N2020_3 |
王玉华 |
男 |
台湾省 |
商软冠联网络有限公司 |
340822198708022149 |
[email protected] |
18651489092 |
49 |
0.449515 |
1990-02-22 12:35:34 |
589 |
1990-02-22 |
4 |
N2020_4 |
赵平 |
女 |
天津市 |
商软冠联传媒有限公司 |
33070219791019772X |
[email protected] |
18027050254 |
38 |
0.160348 |
2013-12-02 20:31:27 |
922 |
2013-12-02 |
data.dtypes
编号 object
姓名 object
性别 object
省份 object
公司 object
身份证号 object
邮箱 object
手机号 int64
年龄 int64
完成率 float64
日期 datetime64[ns]
销售 int64
日期_re object
dtype: object
日期索引丨set_index()
import pandas as pd
import numpy as np
data = pd.read_excel('C:/Users/users/Desktop/Python课件/课件编写/data/p4_数据清洗2.xlsx',index_col=0)
data.head()
|
编号 |
姓名 |
性别 |
省份 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
日期 |
销售 |
0 |
N2020_0 |
范金凤 |
女 |
四川省 |
方正科技信息有限公司 |
320401200112288520 |
[email protected] |
13104093059 |
41 |
0.700930 |
2009-06-28 16:36:39 |
488 |
1 |
N2020_1 |
李平 |
男 |
北京市 |
东方峻景科技有限公司 |
623001196812267643 |
[email protected] |
14558214788 |
46 |
0.057950 |
2009-11-25 07:11:24 |
616 |
2 |
N2020_2 |
李林 |
男 |
福建省 |
昊嘉传媒有限公司 |
131000193309129587 |
[email protected] |
15872567938 |
31 |
0.648331 |
1992-05-08 23:04:30 |
835 |
3 |
N2020_3 |
王玉华 |
男 |
台湾省 |
商软冠联网络有限公司 |
340822198708022149 |
[email protected] |
18651489092 |
49 |
0.449515 |
1990-02-22 12:35:34 |
589 |
4 |
N2020_4 |
赵平 |
女 |
天津市 |
商软冠联传媒有限公司 |
33070219791019772X |
[email protected] |
18027050254 |
38 |
0.160348 |
2013-12-02 20:31:27 |
922 |
data.set_index('日期',inplace=True)
data.head()
|
编号 |
姓名 |
性别 |
省份 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
销售 |
日期 |
|
|
|
|
|
|
|
|
|
|
|
2009-06-28 16:36:39 |
N2020_0 |
范金凤 |
女 |
四川省 |
方正科技信息有限公司 |
320401200112288520 |
[email protected] |
13104093059 |
41 |
0.700930 |
488 |
2009-11-25 07:11:24 |
N2020_1 |
李平 |
男 |
北京市 |
东方峻景科技有限公司 |
623001196812267643 |
[email protected] |
14558214788 |
46 |
0.057950 |
616 |
1992-05-08 23:04:30 |
N2020_2 |
李林 |
男 |
福建省 |
昊嘉传媒有限公司 |
131000193309129587 |
[email protected] |
15872567938 |
31 |
0.648331 |
835 |
1990-02-22 12:35:34 |
N2020_3 |
王玉华 |
男 |
台湾省 |
商软冠联网络有限公司 |
340822198708022149 |
[email protected] |
18651489092 |
49 |
0.449515 |
589 |
2013-12-02 20:31:27 |
N2020_4 |
赵平 |
女 |
天津市 |
商软冠联传媒有限公司 |
33070219791019772X |
[email protected] |
18027050254 |
38 |
0.160348 |
922 |
日期筛选 丨★★★
data['2019']
|
编号 |
姓名 |
性别 |
省份 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
销售 |
日期 |
|
|
|
|
|
|
|
|
|
|
|
2019-07-16 12:20:13 |
N2020_22 |
陆岩 |
男 |
浙江省 |
毕博诚科技有限公司 |
542522198007113665 |
[email protected] |
14576069728 |
38 |
0.566517 |
262 |
2019-12-30 06:36:17 |
N2020_36 |
伍荣 |
男 |
广西壮族自治区 |
富罳网络有限公司 |
230882197007262293 |
[email protected] |
18200579436 |
46 |
0.773116 |
674 |
2019-11-13 07:39:06 |
N2020_57 |
刘红梅 |
男 |
宁夏回族自治区 |
华成育卓网络有限公司 |
431102193803033408 |
[email protected] |
13235351585 |
36 |
0.368342 |
436 |
2019-06-26 04:44:02 |
N2020_71 |
韩凤英 |
男 |
四川省 |
网新恒天网络有限公司 |
152202194306033785 |
[email protected] |
13699762247 |
39 |
0.089812 |
760 |
2019-10-02 12:23:51 |
N2020_73 |
卢丹 |
女 |
上海市 |
盟新科技有限公司 |
370202194101232333 |
[email protected] |
15682747497 |
35 |
0.691084 |
761 |
data['2019-11']
|
编号 |
姓名 |
性别 |
省份 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
销售 |
日期 |
|
|
|
|
|
|
|
|
|
|
|
2019-11-13 07:39:06 |
N2020_57 |
刘红梅 |
男 |
宁夏回族自治区 |
华成育卓网络有限公司 |
431102193803033408 |
[email protected] |
13235351585 |
36 |
0.368342 |
436 |
data['2019-11-01' : '2019-11-20']
|
编号 |
姓名 |
性别 |
省份 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
销售 |
日期 |
|
|
|
|
|
|
|
|
|
|
|
2019-11-13 07:39:06 |
N2020_57 |
刘红梅 |
男 |
宁夏回族自治区 |
华成育卓网络有限公司 |
431102193803033408 |
[email protected] |
13235351585 |
36 |
0.368342 |
436 |
改变日期数据频率丨to_period()
data.to_period('M').head()
|
编号 |
姓名 |
性别 |
省份 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
销售 |
日期 |
|
|
|
|
|
|
|
|
|
|
|
2009-06 |
N2020_0 |
范金凤 |
女 |
四川省 |
方正科技信息有限公司 |
320401200112288520 |
[email protected] |
13104093059 |
41 |
0.700930 |
488 |
2009-11 |
N2020_1 |
李平 |
男 |
北京市 |
东方峻景科技有限公司 |
623001196812267643 |
[email protected] |
14558214788 |
46 |
0.057950 |
616 |
1992-05 |
N2020_2 |
李林 |
男 |
福建省 |
昊嘉传媒有限公司 |
131000193309129587 |
[email protected] |
15872567938 |
31 |
0.648331 |
835 |
1990-02 |
N2020_3 |
王玉华 |
男 |
台湾省 |
商软冠联网络有限公司 |
340822198708022149 |
[email protected] |
18651489092 |
49 |
0.449515 |
589 |
2013-12 |
N2020_4 |
赵平 |
女 |
天津市 |
商软冠联传媒有限公司 |
33070219791019772X |
[email protected] |
18027050254 |
38 |
0.160348 |
922 |
data.to_period('Y').reset_index().head()
|
日期 |
编号 |
姓名 |
性别 |
省份 |
公司 |
身份证号 |
邮箱 |
手机号 |
年龄 |
完成率 |
销售 |
0 |
2009 |
N2020_0 |
范金凤 |
女 |
四川省 |
方正科技信息有限公司 |
320401200112288520 |
[email protected] |
13104093059 |
41 |
0.700930 |
488 |
1 |
2009 |
N2020_1 |
李平 |
男 |
北京市 |
东方峻景科技有限公司 |
623001196812267643 |
[email protected] |
14558214788 |
46 |
0.057950 |
616 |
2 |
1992 |
N2020_2 |
李林 |
男 |
福建省 |
昊嘉传媒有限公司 |
131000193309129587 |
[email protected] |
15872567938 |
31 |
0.648331 |
835 |
3 |
1990 |
N2020_3 |
王玉华 |
男 |
台湾省 |
商软冠联网络有限公司 |
340822198708022149 |
[email protected] |
18651489092 |
49 |
0.449515 |
589 |
4 |
2013 |
N2020_4 |
赵平 |
女 |
天津市 |
商软冠联传媒有限公司 |
33070219791019772X |
[email protected] |
18027050254 |
38 |
0.160348 |
922 |
本节重点
- 缺失值填充
- 缺失值删除:subset参数
- 重复值删除:subset参数
- 更改列名:columns参数
- 替换
- 排序