'''
Pandas数据结构Series:基本概念及创建
"一维数组"Serise
'''
import numpy as np
import pandas as pd
import time
s=pd. Series( np. random. rand( 5) )
print( s)
print( type ( s) )
print( s. index, type ( s. index) )
print( s. values, type ( s. values) )
print( "========创建series三中方法=========" )
dic={ "a" :"1" , "b" :"2" , "c" :"3" , "d" :"4" }
s=pd. Series( dic)
print( s)
arr=np. random. rand( 5)
s=pd. Series( arr)
print( s)
s=pd. Series( arr, index=[ 'a' , 'b' , 'c' , 'd' , 'e' ] )
print( s)
s=pd. Series( 10, index=range( 4) )
print( s)
s1=pd. Series( np. random. randn( 5) )
print( s1)
print( "====================" )
s2=pd. Series( np. random. randn( 5) , name="test" )
print( s2)
print( s1. name, s2. name, type ( s2. name) )
print( "====================" )
s3=s2. rename( "hehehe" )
print( s3)
print( s3. name, s2. name)
'''
Pandas数据结构Series:索引
位置下标 / 标签索引 / 切片索引 / 布尔型索引
'''
print ( "=======Pandas数据结构Series:索引=======" )
s= pd. Series( np. random. rand( 5 ) )
print ( s)
print ( s[ 0 ] , type ( s[ 0 ] ) , s[ 0 ] . dtype)
print ( float ( s[ 0 ] ) , type ( float ( s[ 0 ] ) ) )
print ( "======索引切片========" )
s1= pd. Series( np. random. rand( 5 ) )
print ( s1)
s2= pd. Series( np. random. rand( 5 ) )
print ( s2)
print ( s1[ 1 : 4 ] , s1[ 4 ] )
print ( s2[ 0 : 3 ] , s2[ 3 ] )
print ( "===================" )
print ( s2[ : - 1 ] )
print ( s2[ : : 2 ] )
print ( "=========布尔型索引======" )
s= pd. Series( np. random. rand( 3 ) * 100 )
s[ 4 ] = None
print ( s)
bs1= s> 50
bs2= s. isnull( )
bs3= s. notnull( )
print ( bs1, type ( bs1) , bs1. dtype)
print ( bs2, type ( bs2) , bs2. dtype)
print ( bs3, type ( bs3) , bs3. dtype)
print ( s[ s> 50 ] )
print ( s[ bs3] )
print ( "============= Pandas数据结构Series:基本技巧====================" )
'''
Pandas数据结构Series:基本技巧
数据查看 / 重新索引 / 对齐 / 添加、修改、删除值
'''
s= pd. Series( np. random. rand( 50 ) )
print ( s. tail( 10 ) )
print ( s. head( ) )
print ( "============# 重新索引reindex==============" )
s= pd. Series( np. random. rand( 3 ) , index= [ 'a' , 'b' , 'c' ] )
print ( s)
s1= s. reindex( [ 'a' , 'b' , 'c' , 'd' ] )
print ( s1)
s2= s. reindex( [ 'a' , 'b' , 'c' , 'd' ] , fill_value= 0 )
print ( s2)
print ( "========Series对齐==========" )
s1= pd. Series( np. random. rand( 3 ) , index= [ 'Jack' , 'Marry' , 'Tom' ] )
s2= pd. Series( np. random. rand( 3 ) , index= [ 'Jack' , 'Marry' , 'Tom' ] )
print ( s1)
print ( s2)
print ( s1+ s2)
print ( "=======#删除:drop==========" )
s= pd. Series( np. random. rand( 5 ) , index= list ( 'ngjur' ) )
print ( s)
s1= s. drop( 'n' )
s2= s. drop( [ 'g' , 'j' ] )
print ( s1)
print ( s2)
print ( s)
print ( "========添加=======" )
s1= pd. Series( np. random. rand( 5 ) )
s2= pd. Series( np. random. rand( 5 ) , index= list ( "ngjur" ) )
print ( s1)
print ( s2)
s1[ 5 ] = 100
s2[ 'a' ] = 100
print ( s1)
print ( s2)
print ( "================" )
s3= s1. append( s2)
print ( s3)
print ( "=======修改======" )
s= pd. Series( np. random. rand( 3 ) , index= [ 'a' , 'b' , 'c' ] )
print ( s)