Python Pandas 用法总结
学习,从模仿开始,从练习开始,从自己熟悉喜欢的数据开始。
一、生成数据表
1. 引进 pandas
import pandas as pd
import numpy as np
import os
os. chdir( 'D:\\jupter notebook' )
2.导入CSV或者xlsx文件:
Data1 = pd. read_excel( '2020-2021赛季英超第34轮积分.xlsx' , sheet_name= '积分' )
Data1. head( 6 )
排名 球队 场次 胜场 平局 负场 进/失球 积分 0 1 曼城 34 25 5 4 71/24 80 1 2 曼联 33 19 10 4 64/35 67 2 3 莱斯特城 34 19 6 9 61/39 63 3 4 切尔西 34 17 10 7 53/31 61 4 5 热刺 34 16 8 10 60/38 56 5 6 西汉姆 33 16 7 10 53/43 55
3、用pandas创建数据表:
Top6 = pd. DataFrame( { "排名" : [ 1 , 2 , 3 , 4 , 5 , 6 ] ,
"球队" : [ '曼城' , '曼联' , '莱斯特城' , '切尔西' , '热刺' , '西汉姆' ] ,
"场次" : [ 34 , 33 , 34 , 34 , np. nan, 33 ] ,
"胜场" : [ 25 , 19 , 19 , 17 , 16 , 16 ] ,
"平局" : [ 5 , 10 , 6 , 10 , 8 , 7 ] ,
"负场" : [ 4 , 4 , 9 , 7 , 10 , 10 ] ,
"进/失球" : [ '71/24' , '64/35' , '61/39' , '53/31' , '60/38' , '53/43' ] ,
"积分" : [ np. nan, 67 , 63 , 61 , 56 , 55 ] } ,
columns = [ '排名' , '球队' , '场次' , '胜场' , '平局' , '负场' , '进/失球' , '积分' ] )
Top6
排名 球队 场次 胜场 平局 负场 进/失球 积分 0 1 曼城 34.0 25 5 4 71/24 NaN 1 2 曼联 33.0 19 10 4 64/35 67.0 2 3 莱斯特城 34.0 19 6 9 61/39 63.0 3 4 切尔西 34.0 17 10 7 53/31 61.0 4 5 热刺 NaN 16 8 10 60/38 56.0 5 6 西汉姆 33.0 16 7 10 53/43 55.0
二、数据表信息查看
1、维度查看:
Data1. shape
(20, 8)
2、数据表基本信息(维度、列名称、数据格式、所占空间等):
Data1. info( )
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 20 entries, 0 to 19
Data columns (total 8 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 排名 20 non-null int64
1 球队 20 non-null object
2 场次 20 non-null int64
3 胜场 20 non-null int64
4 平局 20 non-null int64
5 负场 20 non-null int64
6 进/失球 20 non-null object
7 积分 20 non-null int64
dtypes: int64(6), object(2)
memory usage: 1.4+ KB
3、每一列数据的格式:
Data1. dtypes
排名 int64
球队 object
场次 int64
胜场 int64
平局 int64
负场 int64
进/失球 object
积分 int64
dtype: object
4、某一列格式:
Data1[ '积分' ] . dtype
dtype('int64')
5、空值:
Top6[ '积分' ] . isnull( )
0 True
1 False
2 False
3 False
4 False
5 False
Name: 积分, dtype: bool
6、查看某一列的唯一值:
Top6[ '球队' ] . unique( )
array(['曼城', '曼联', '莱斯特城', '切尔西', '热刺', '西汉姆'], dtype=object)
7、查看数据表的值:
Top6. isnull( )
排名 球队 场次 胜场 平局 负场 进/失球 积分 0 False False False False False False False True 1 False False False False False False False False 2 False False False False False False False False 3 False False False False False False False False 4 False False True False False False False False 5 False False False False False False False False
Top6. values
array([[1, '曼城', 34.0, 25, 5, 4, '71/24', nan],
[2, '曼联', 33.0, 19, 10, 4, '64/35', 67.0],
[3, '莱斯特城', 34.0, 19, 6, 9, '61/39', 63.0],
[4, '切尔西', 34.0, 17, 10, 7, '53/31', 61.0],
[5, '热刺', nan, 16, 8, 10, '60/38', 56.0],
[6, '西汉姆', 33.0, 16, 7, 10, '53/43', 55.0]], dtype=object)
8、查看列名称:
Data1. columns
Index(['排名', '球队', '场次', '胜场', '平局', '负场', '进/失球', '积分'], dtype='object')
9、查看前5行数据、后5行数据:
Data1. head( )
Data1. tail( )
Data1. head( 3 )
排名 球队 场次 胜场 平局 负场 进/失球 积分 0 1 曼城 34 25 5 4 71/24 80 1 2 曼联 33 19 10 4 64/35 67 2 3 莱斯特城 34 19 6 9 61/39 63
三、数据表清洗
1、用数字0填充空值:
Top6. fillna( value= 0 )
排名 球队 场次 胜场 平局 负场 进/失球 积分 0 1 曼城 34.0 25 5 4 71/24 0.0 1 2 曼联 33.0 19 10 4 64/35 67.0 2 3 莱斯特城 34.0 19 6 9 61/39 63.0 3 4 切尔西 34.0 17 10 7 53/31 61.0 4 5 热刺 0.0 16 8 10 60/38 56.0 5 6 西汉姆 33.0 16 7 10 53/43 55.0
2、通过胜负场计算对NA进行填充:
Top6[ '积分' ] = Top6[ '积分' ] . fillna( 25 * 3 + 5 * 1 )
Top6[ '场次' ] = Top6[ '场次' ] . fillna( 16 + 8 + 10 )
Top6
排名 球队 场次 胜场 平局 负场 进/失球 积分 0 1 曼城 34.0 25 5 4 71/24 80.0 1 2 曼联 33.0 19 10 4 64/35 67.0 2 3 莱斯特城 34.0 19 6 9 61/39 63.0 3 4 切尔西 34.0 17 10 7 53/31 61.0 4 5 热刺 34.0 16 8 10 60/38 56.0 5 6 西汉姆 33.0 16 7 10 53/43 55.0
3、更改数据格式:
Top6[ '积分' ] . astype ( 'int' )
0 80
1 67
2 63
3 61
4 56
5 55
Name: 积分, dtype: int32
4、更改列名称:
Top6. rename( columns= { '排名' : '积分排名' } )
积分排名 球队 场次 胜场 平局 负场 进/失球 积分 0 1 曼城 34.0 25 5 4 71/24 80.0 1 2 曼联 33.0 19 10 4 64/35 67.0 2 3 莱斯特城 34.0 19 6 9 61/39 63.0 3 4 切尔西 34.0 17 10 7 53/31 61.0 4 5 热刺 34.0 16 8 10 60/38 56.0 5 6 西汉姆 33.0 16 7 10 53/43 55.0
5、删除重复值(保留首次出现的值)
Top6[ '胜场' ] . drop_duplicates( )
0 25
1 19
3 17
4 16
Name: 胜场, dtype: int64
6 、删除先出现的重复值:
Top6[ '胜场' ] . drop_duplicates( keep= 'last' )
0 25
2 19
3 17
5 16
Name: 胜场, dtype: int64
7、数据替换:
Top6[ '球队' ] . replace( [ '曼城' , '曼联' , '莱斯特城' , '切尔西' , '热刺' , '西汉姆' ] , [ '蓝月亮' , '红魔' , '蓝狐' , '蓝军' , '白百合' , '铁锤帮' ] )
0 蓝月亮
1 红魔
2 蓝狐
3 蓝军
4 白百合
5 铁锤帮
Name: 球队, dtype: object
四、数据预处理
1、数据表合并
1.1 merge
Top6a= pd. DataFrame( { '球队' : [ '曼城' , '曼联' , '莱斯特城' , '切尔西' , '热刺' , '西汉姆' ] ,
'绰号' : [ '蓝月亮' , '红魔' , '蓝狐' , '蓝军' , '白百合' , '铁锤帮' ] ,
'主教练' : [ '瓜迪奥拉' , '索尔斯克亚' , '罗杰斯' , '图赫尔' , '瑞安-梅森' , '莫耶斯' ] } )
Top6a
球队 绰号 主教练 0 曼城 蓝月亮 瓜迪奥拉 1 曼联 红魔 索尔斯克亚 2 莱斯特城 蓝狐 罗杰斯 3 切尔西 蓝军 图赫尔 4 热刺 白百合 瑞安-梅森 5 西汉姆 铁锤帮 莫耶斯
df_inner= pd. merge( Top6, Top6a, how= 'inner' )
df_left= pd. merge( Top6, Top6a, how= 'left' )
df_right= pd. merge( Top6, Top6a, how= 'right' )
df_outer= pd. merge( Top6, Top6a, how= 'outer' )
df_inner
排名 球队 场次 胜场 平局 负场 进/失球 积分 绰号 主教练 0 1 曼城 34.0 25 5 4 71/24 80.0 蓝月亮 瓜迪奥拉 1 2 曼联 33.0 19 10 4 64/35 67.0 红魔 索尔斯克亚 2 3 莱斯特城 34.0 19 6 9 61/39 63.0 蓝狐 罗杰斯 3 4 切尔西 34.0 17 10 7 53/31 61.0 蓝军 图赫尔 4 5 热刺 34.0 16 8 10 60/38 56.0 白百合 瑞安-梅森 5 6 西汉姆 33.0 16 7 10 53/43 55.0 铁锤帮 莫耶斯
Data1. head( 10 )
排名 球队 场次 胜场 平局 负场 进/失球 积分 0 1 曼城 34 25 5 4 71/24 80 1 2 曼联 33 19 10 4 64/35 67 2 3 莱斯特城 34 19 6 9 61/39 63 3 4 切尔西 34 17 10 7 53/31 61 4 5 热刺 34 16 8 10 60/38 56 5 6 西汉姆 33 16 7 10 53/43 55 6 7 利物浦 33 15 9 9 55/39 54 7 8 埃弗顿 33 15 7 11 45/42 52 8 9 阿森纳 34 14 7 13 46/37 49 9 10 阿斯顿维拉 33 14 6 13 48/38 48
1.2 append
LI= pd. DataFrame( [ 7 , '利物浦' , 33 , 15 , 9 , 9 , '55/39' , 54 ] ) . T
LI. columns = [ '排名' , '球队' , '场次' , '胜场' , '平局' , '负场' , '进/失球' , '积分' ]
LI
排名 球队 场次 胜场 平局 负场 进/失球 积分 0 7 利物浦 33 15 9 9 55/39 54
Top7 = Top6. append( LI)
Top7
排名 球队 场次 胜场 平局 负场 进/失球 积分 0 1 曼城 34.0 25 5 4 71/24 80.0 1 2 曼联 33.0 19 10 4 64/35 67.0 2 3 莱斯特城 34.0 19 6 9 61/39 63.0 3 4 切尔西 34.0 17 10 7 53/31 61.0 4 5 热刺 34.0 16 8 10 60/38 56.0 5 6 西汉姆 33.0 16 7 10 53/43 55.0 0 7 利物浦 33 15 9 9 55/39 54
1.3 join
left = pd. DataFrame( { 'A' : [ 'A0' , 'A1' , 'A2' , 'A3' ] , 'B' : [ 'B0' , 'B1' , 'B2' , 'B3' ] , 'key' : [ 'K0' , 'K1' , 'K2' , 'K3' ] } )
right = pd. DataFrame( { 'C' : [ 'C0' , 'C1' ] , 'D' : [ 'D0' , 'D1' ] } , index= [ 'K0' , 'K1' ] )
left. join( right, on= 'key' )
A B key C D 0 A0 B0 K0 C0 D0 1 A1 B1 K1 C1 D1 2 A2 B2 K2 NaN NaN 3 A3 B3 K3 NaN NaN
1.4 concat
pd. concat( [ Top6, LI] )
排名 球队 场次 胜场 平局 负场 进/失球 积分 0 1 曼城 34.0 25 5 4 71/24 80.0 1 2 曼联 33.0 19 10 4 64/35 67.0 2 3 莱斯特城 34.0 19 6 9 61/39 63.0 3 4 切尔西 34.0 17 10 7 53/31 61.0 4 5 热刺 34.0 16 8 10 60/38 56.0 5 6 西汉姆 33.0 16 7 10 53/43 55.0 0 7 利物浦 33 15 9 9 55/39 54
2、设置索引列
Top7. set_index( '排名' )
球队 场次 胜场 平局 负场 进/失球 积分 排名 1 曼城 34.0 25 5 4 71/24 80.0 2 曼联 33.0 19 10 4 64/35 67.0 3 莱斯特城 34.0 19 6 9 61/39 63.0 4 切尔西 34.0 17 10 7 53/31 61.0 5 热刺 34.0 16 8 10 60/38 56.0 6 西汉姆 33.0 16 7 10 53/43 55.0 7 利物浦 33 15 9 9 55/39 54
3、按照特定列的值排序:
Top7. sort_values( by= [ '平局' ] )
排名 球队 场次 胜场 平局 负场 进/失球 积分 0 1 曼城 34.0 25 5 4 71/24 80.0 2 3 莱斯特城 34.0 19 6 9 61/39 63.0 5 6 西汉姆 33.0 16 7 10 53/43 55.0 4 5 热刺 34.0 16 8 10 60/38 56.0 0 7 利物浦 33 15 9 9 55/39 54 1 2 曼联 33.0 19 10 4 64/35 67.0 3 4 切尔西 34.0 17 10 7 53/31 61.0
4、按照索引列排序:
Top7. sort_index( axis= 1 , ascending= False )
进/失球 负场 胜场 积分 球队 排名 平局 场次 0 71/24 4 25 80.0 曼城 1 5 34.0 1 64/35 4 19 67.0 曼联 2 10 33.0 2 61/39 9 19 63.0 莱斯特城 3 6 34.0 3 53/31 7 17 61.0 切尔西 4 10 34.0 4 60/38 10 16 56.0 热刺 5 8 34.0 5 53/43 10 16 55.0 西汉姆 6 7 33.0 0 55/39 9 15 54 利物浦 7 9 33
5.标记标签
Top7[ '欧冠区' ] = np. where( Top7[ '排名' ] < 5 , '是' , '否' )
Top7
排名 球队 场次 胜场 平局 负场 进/失球 积分 欧冠区 0 1 曼城 34.0 25 5 4 71/24 80.0 是 1 2 曼联 33.0 19 10 4 64/35 67.0 是 2 3 莱斯特城 34.0 19 6 9 61/39 63.0 是 3 4 切尔西 34.0 17 10 7 53/31 61.0 是 4 5 热刺 34.0 16 8 10 60/38 56.0 否 5 6 西汉姆 33.0 16 7 10 53/43 55.0 否 0 7 利物浦 33 15 9 9 55/39 54 否
6、对复合多个条件的数据进行分组标记
Top7. loc[ ( Top7[ '欧冠区' ] == '否' ) & ( Top7[ '排名' ] >= 4 ) , '争四球队' ] = '是'
Top7= Top7. fillna( '否' )
Top7
排名 球队 场次 胜场 平局 负场 进/失球 积分 欧冠区 争四球队 0 1 曼城 34.0 25 5 4 71/24 80.0 是 否 1 2 曼联 33.0 19 10 4 64/35 67.0 是 否 2 3 莱斯特城 34.0 19 6 9 61/39 63.0 是 否 3 4 切尔西 34.0 17 10 7 53/31 61.0 是 否 4 5 热刺 34.0 16 8 10 60/38 56.0 否 是 5 6 西汉姆 33.0 16 7 10 53/43 55.0 否 是 0 7 利物浦 33.0 15 9 9 55/39 54.0 否 是
五、数据提取
主要用到的三个函数:loc,iloc和ix,loc函数按标签值进行提取,iloc按位置进行提取,ix可以同时按标签和位置进行提取。
1、按索引提取单行的数值
Top7. loc[ 3 ]
排名 4
球队 切尔西
场次 34.0
胜场 17
平局 10
负场 7
进/失球 53/31
积分 61.0
欧冠区 是
争四球队 否
Name: 3, dtype: object
2、按索引提取区域行数值
Top7. iloc[ 0 : 4 ]
排名 球队 场次 胜场 平局 负场 进/失球 积分 欧冠区 争四球队 0 1 曼城 34.0 25 5 4 71/24 80.0 是 否 1 2 曼联 33.0 19 10 4 64/35 67.0 是 否 2 3 莱斯特城 34.0 19 6 9 61/39 63.0 是 否 3 4 切尔西 34.0 17 10 7 53/31 61.0 是 否
3、重设索引
Top7. reset_index( )
TOP7= Top7. set_index( '球队' )
TOP7
排名 场次 胜场 平局 负场 进/失球 积分 欧冠区 争四球队 球队 曼城 1 34.0 25 5 4 71/24 80.0 是 否 曼联 2 33.0 19 10 4 64/35 67.0 是 否 莱斯特城 3 34.0 19 6 9 61/39 63.0 是 否 切尔西 4 34.0 17 10 7 53/31 61.0 是 否 热刺 5 34.0 16 8 10 60/38 56.0 否 是 西汉姆 6 33.0 16 7 10 53/43 55.0 否 是 利物浦 7 33.0 15 9 9 55/39 54.0 否 是
4、在"球队’索引中提取指定的所有数据
TOP7[ : '切尔西' ]
排名 场次 胜场 平局 负场 进/失球 积分 欧冠区 争四球队 球队 曼城 1 34.0 25 5 4 71/24 80.0 是 否 曼联 2 33.0 19 10 4 64/35 67.0 是 否 莱斯特城 3 34.0 19 6 9 61/39 63.0 是 否 切尔西 4 34.0 17 10 7 53/31 61.0 是 否
TOP7. loc[ '切尔西' ]
排名 4
场次 34.0
胜场 17
平局 10
负场 7
进/失球 53/31
积分 61.0
欧冠区 是
争四球队 否
Name: 切尔西, dtype: object
5、使用iloc按位置区域提取数据
TOP7. iloc[ : 3 , : 7 ]
排名 场次 胜场 平局 负场 进/失球 积分 球队 曼城 1 34.0 25 5 4 71/24 80.0 曼联 2 33.0 19 10 4 64/35 67.0 莱斯特城 3 34.0 19 6 9 61/39 63.0
6、适应iloc按位置单独提起数据
TOP7. iloc[ [ 1 , 4 , 6 ] , [ 0 , 6 ] ]
排名 积分 球队 曼联 2 67.0 热刺 5 56.0 利物浦 7 54
7、判断‘欧冠’列的值
TOP7[ '欧冠区' ] . isin( [ '是' ] )
球队
曼城 True
曼联 True
莱斯特城 True
切尔西 True
热刺 False
西汉姆 False
利物浦 False
Name: 欧冠区, dtype: bool
8、判断球队列里是否包含曼联和利物浦,然后将符合条件的数据提取出来
Top7. loc[ Top7[ '球队' ] . isin( [ '曼联' , '利物浦' ] ) ]
排名 球队 场次 胜场 平局 负场 进/失球 积分 欧冠区 争四球队 1 2 曼联 33.0 19 10 4 64/35 67.0 是 否 0 7 利物浦 33.0 15 9 9 55/39 54.0 否 是
9、提取进/失球列名字符,并生成数据表
TOP7[ '进/失球' ] . str . split( '/' , expand= True )
TOP7[ '进/失球' ] . str . split( '/' , expand= True ) [ 0 ]
TOP7[ '进/失球' ] . str . split( '/' , expand= True ) [ 1 ]
0 1 球队 曼城 71 24 曼联 64 35 莱斯特城 61 39 切尔西 53 31 热刺 60 38 西汉姆 53 43 利物浦 55 39
六、数据筛选
使用与、或、非三个条件配合大于、小于、等于对数据进行筛选,并进行计数和求和。
1、使用“与”进行筛选
Top7. loc[ ( Top7[ '场次' ] > 33 ) & ( Top7[ '欧冠区' ] == '是' ) , [ '球队' , '积分' , '欧冠区' , '排名' ] ]
球队 积分 欧冠区 排名 0 曼城 80.0 是 1 2 莱斯特城 63.0 是 3 3 切尔西 61.0 是 4
2、使用“或”进行筛选
TOP7. loc[ ( TOP7[ '场次' ] > 34 ) | ( TOP7[ '欧冠区' ] == '是' ) ]
排名 场次 胜场 平局 负场 进/失球 积分 欧冠区 争四球队 球队 曼城 1 34.0 25 5 4 71/24 80.0 是 否 曼联 2 33.0 19 10 4 64/35 67.0 是 否 莱斯特城 3 34.0 19 6 9 61/39 63.0 是 否 切尔西 4 34.0 17 10 7 53/31 61.0 是 否
TOP7. loc[ ( TOP7[ '场次' ] > 33 ) | ( TOP7[ '欧冠区' ] == '是' ) , [ '积分' , '欧冠区' , '排名' ] ]
积分 欧冠区 排名 球队 曼城 80.0 是 1 曼联 67.0 是 2 莱斯特城 63.0 是 3 切尔西 61.0 是 4 热刺 56.0 否 5
3、使用“非”条件进行筛选
TOP7. loc[ ( TOP7[ '欧冠区' ] != '是' ) , [ '积分' , '争四球队' , '排名' ] ]
积分 争四球队 排名 球队 热刺 56.0 是 5 西汉姆 55.0 是 6 利物浦 54.0 是 7
4、对筛选后的数据按客单价列进行排序以及计数
TOP7. loc[ ( TOP7[ '场次' ] == 34 ) , [ '积分' , '排名' ] ] . sort_values( by= [ '积分' ] )
积分 排名 球队 热刺 56.0 5 切尔西 61.0 4 莱斯特城 63.0 3 曼城 80.0 1
5、对筛选后的结果按客单价进行平均值
TOP7. loc[ ( TOP7[ '欧冠区' ] == '是' ) ] . 积分. mean( )
67.75
七、数据汇总
主要函数是groupby和pivote_table
1、对所有的列进行计数汇总
TOP7. groupby( '欧冠区' ) . 积分. sum ( )
TOP7. groupby( '欧冠区' ) . sum ( )
排名 场次 胜场 平局 负场 积分 欧冠区 否 18 100.0 47 24 29 165.0 是 10 135.0 80 31 24 271.0
2、按欧冠区对胜场字段进行求和
Top7. groupby( '欧冠区' ) [ '胜场' ] . sum ( )
欧冠区
否 47
是 80
Name: 胜场, dtype: int64
3、对两个字段进行汇总计数
pd. DataFrame( Top7. groupby( [ '欧冠区' , '球队' ] ) [ '胜场' ] . sum ( ) )
胜场 欧冠区 球队 否 利物浦 15 热刺 16 西汉姆 16 是 切尔西 17 曼城 25 曼联 19 莱斯特城 19
4、pivot_table对字段进行汇总
pd. pivot_table( Top7, index= [ "欧冠区" ] )
pd. pivot_table( Top7, index= [ "欧冠区" , '场次' ] )
pd. pivot_table( Top7, index= [ "争四球队" , '场次' ] )
平局 排名 积分 胜场 负场 争四球队 场次 否 33.0 10 2.000000 67.0 19.000000 4.000000 34.0 7 2.666667 68.0 20.333333 6.666667 是 33.0 8 6.500000 54.5 15.500000 9.500000 34.0 8 5.000000 56.0 16.000000 10.000000
pd. pivot_table( Top7, index= [ "欧冠区" ] , values= [ '积分' ] )
pd. pivot_table( Top7, index= [ "欧冠区" , '场次' ] , values= [ '积分' ] )
pd. pivot_table( Top7, index= [ "欧冠区" , '场次' ] , values= [ '积分' ] , aggfunc= np. sum )
积分 欧冠区 场次 否 33.0 109.0 34.0 56.0 是 33.0 67.0 34.0 204.0
pd. pivot_table( Top7, index= [ "欧冠区" ] , values= [ '积分' ] , columns= [ "场次" ] , aggfunc= [ np. sum ] )
sum 积分 场次 33.0 34.0 欧冠区 否 109.0 56.0 是 67.0 204.0
八、数据统计
数据采样,计算标准差,协方差和相关系数
1、简单随机数据采样
Top7. sample( n= 3 )
排名 球队 场次 胜场 平局 负场 进/失球 积分 欧冠区 争四球队 5 6 西汉姆 33.0 16 7 10 53/43 55.0 否 是 0 7 利物浦 33.0 15 9 9 55/39 54.0 否 是 0 1 曼城 34.0 25 5 4 71/24 80.0 是 否
2、手动设置采样权重
weights = [ 0 , 0.2 , 0 , 0 , 0 , 0.3 , 0.5 ]
Top7. sample( n= 3 , weights= weights)
排名 球队 场次 胜场 平局 负场 进/失球 积分 欧冠区 争四球队 5 6 西汉姆 33.0 16 7 10 53/43 55.0 否 是 1 2 曼联 33.0 19 10 4 64/35 67.0 是 否 0 7 利物浦 33.0 15 9 9 55/39 54.0 否 是
3、采样后不放回,不重复取样
Top7. sample( n= 6 , replace= False )
排名 球队 场次 胜场 平局 负场 进/失球 积分 欧冠区 争四球队 1 2 曼联 33.0 19 10 4 64/35 67.0 是 否 5 6 西汉姆 33.0 16 7 10 53/43 55.0 否 是 0 1 曼城 34.0 25 5 4 71/24 80.0 是 否 0 7 利物浦 33.0 15 9 9 55/39 54.0 否 是 3 4 切尔西 34.0 17 10 7 53/31 61.0 是 否 2 3 莱斯特城 34.0 19 6 9 61/39 63.0 是 否
4、采样后放回
可重复取样
Top7. sample( n= 6 , replace= True )
排名 球队 场次 胜场 平局 负场 进/失球 积分 欧冠区 争四球队 5 6 西汉姆 33.0 16 7 10 53/43 55.0 否 是 3 4 切尔西 34.0 17 10 7 53/31 61.0 是 否 2 3 莱斯特城 34.0 19 6 9 61/39 63.0 是 否 0 7 利物浦 33.0 15 9 9 55/39 54.0 否 是 0 1 曼城 34.0 25 5 4 71/24 80.0 是 否 3 4 切尔西 34.0 17 10 7 53/31 61.0 是 否
5、 数据表描述性统计
Top7. describe( ) . round ( 2 ) . T
count mean std min 25% 50% 75% max 排名 7.0 4.00 2.16 1.0 2.5 4.0 5.5 7.0 场次 7.0 33.57 0.53 33.0 33.0 34.0 34.0 34.0 胜场 7.0 18.14 3.39 15.0 16.0 17.0 19.0 25.0 平局 7.0 7.86 1.95 5.0 6.5 8.0 9.5 10.0 负场 7.0 7.57 2.64 4.0 5.5 9.0 9.5 10.0 积分 7.0 62.29 9.12 54.0 55.5 61.0 65.0 80.0
6、计算列的标准差
Top7[ '胜场' ] . std( )
3.387652649872841
7、计算两个字段间的协方差
Top7[ '胜场' ] . cov( Top7[ '积分' ] )
30.452380952380953
8、数据表中所有字段间的协方差
Top7. cov( )
排名 场次 胜场 平局 负场 积分 排名 4.666667 -0.500000 -6.500000 1.333333 4.666667 -18.166667 场次 -0.500000 0.285714 0.738095 -0.404762 -0.047619 1.809524 胜场 -6.500000 0.738095 11.476190 -3.976190 -6.761905 30.452381 平局 1.333333 -0.404762 -3.976190 3.809524 -0.238095 -8.119048 负场 4.666667 -0.047619 -6.761905 -0.238095 6.952381 -20.523810 积分 -18.166667 1.809524 30.452381 -8.119048 -20.523810 83.238095
9、两个字段的相关性分析
Top7[ '场次' ] . corr( top[ '积分' ] )
0.985284
10、数据表的相关性分析
Top7. corr( )
排名 场次 胜场 平局 负场 积分 排名 1.000000 -0.433013 -0.888201 0.316228 0.819288 -0.921745 场次 -0.433013 1.000000 0.407613 -0.387970 -0.033787 0.371054 胜场 -0.888201 0.407613 1.000000 -0.601358 -0.757013 0.985284 平局 0.316228 -0.387970 -0.601358 1.000000 -0.046265 -0.455941 负场 0.819288 -0.033787 -0.757013 -0.046265 1.000000 -0.853159 积分 -0.921745 0.371054 0.985284 -0.455941 -0.853159 1.000000
九、数据输出
分析后的数据可以输出为xlsx格式和csv格式
1、写入Excel
Top7. to_excel( 'Top7excel_to_python.xlsx' , sheet_name= 'Top7' )
2、写入到CSV
Top7. to_csv( 'Top7excel_to_python.csv' )