import pandas as pd
from numpy import nan as NA
df = pd. DataFrame( [ [ 1 , 6.5 , 3 ] , [ 1 , NA, NA] , [ NA, NA, NA] , [ NA, 6.5 , 3 ] ] , index= [ 10 , 20 , 30 , 40 ] , columns= [ 'a' , 'b' , 'c' ] )
df
a b c 10 1.0 6.5 3.0 20 1.0 NaN NaN 30 NaN NaN NaN 40 NaN 6.5 3.0
df. dropna( )
df. dropna( how= 'all' )
0 1 2 0 1.0 6.5 3.0 1 1.0 NaN NaN 3 NaN 6.5 3.0
df[ 4 ] = NA
df
a b c 4 10 1.0 6.5 3.0 NaN 20 1.0 NaN NaN NaN 30 NaN NaN NaN NaN 40 NaN 6.5 3.0 NaN
df. dropna( axis= 1 )
df. dropna( how= 'all' )
a b c 4 10 1.0 6.5 3.0 NaN 20 1.0 NaN NaN NaN 40 NaN 6.5 3.0 NaN
df. dropna( axis= 1 , how= 'all' )
a b c 10 1.0 6.5 3.0 20 1.0 NaN NaN 30 NaN NaN NaN 40 NaN 6.5 3.0
df. dropna( axis= 0 )
data1= {
'num' : [ 10 , 99 , 12 , 13 , 14 , 15 , 10 ] ,
'name' : [ 'lili' , 'wangyi' , 'gouzi' , 'xiaoye' , 'yangyang' , 'zhouyang' , 'lili' ] ,
'age' : [ 25 , 20 , 28 , 23 , 25 , 30 , 25 ] ,
'address' : [ '北京' , '上海' , '北京' , '上海' , '北京' , '上海' , '北京' ]
}
data1
{'num': [10, 99, 12, 13, 14, 15, 10],
'name': ['lili', 'wangyi', 'gouzi', 'xiaoye', 'yangyang', 'zhouyang', 'lili'],
'age': [25, 20, 28, 23, 25, 30, 25],
'address': ['北京', '上海', '北京', '上海', '北京', '上海', '北京']}
df= pd. DataFrame( data1, index= [ 'a' , 'b' , 'c' , 'd' , 'e' , 'f' , 'g' ] )
df
num name age address a 10 lili 25 北京 b 99 wangyi 20 上海 c 12 gouzi 28 北京 d 13 xiaoye 23 上海 e 14 yangyang 25 北京 f 15 zhouyang 30 上海 g 10 lili 25 北京
import pandas as pd
from numpy import nan as NA
df. loc[ 'c' : 'f' , 'age' ] = NA
df. fillna( 'wu' )
df
num name age address a 10 lili 25 北京 b 99 wangyi 20 上海 c 12 gouzi NaN 北京 d 13 xiaoye NaN 上海 e 14 yangyang NaN 北京 f 15 zhouyang NaN 上海 g 16 wangli 32 北京
df1= pd. DataFrame( data1)
df1
num name age address 0 10 lili 25 北京 1 99 wangyi 20 上海 2 12 gouzi 28 北京 3 13 xiaoye 23 上海 4 14 yangyang 25 北京 5 15 zhouyang 30 上海 6 16 wangli 32 北京
df1. loc[ 1 : 4 , 'name' ] = NA
df1. fillna( '555' , inplace= True )
df1
num name age address 0 10 lili 25 北京 1 99 555 20 上海 2 12 555 28 北京 3 13 555 23 上海 4 14 555 25 北京 5 15 zhouyang 30 上海 6 16 wangli 32 北京
df1
num name age address 0 10 lili 25 北京 1 99 555 20 上海 2 12 555 28 北京 3 13 555 23 上海 4 14 555 25 北京 5 15 zhouyang 30 上海 6 16 wangli 32 北京
df
num name age address a 10 lili 25 北京 b 99 wangyi 20 上海 c 12 gouzi NaN 北京 d 13 xiaoye NaN 上海 e 14 yangyang NaN 北京 f 15 zhouyang NaN 上海 g 16 wangli 32 北京
df. fillna( method= 'ffill' )
num name age address a 10 lili 25.0 北京 b 99 wangyi 20.0 上海 c 12 gouzi 20.0 北京 d 13 xiaoye 20.0 上海 e 14 yangyang 20.0 北京 f 15 zhouyang 20.0 上海 g 16 wangli 32.0 北京
df
num name age address a 10 lili 25 北京 b 99 wangyi 20 上海 c 12 gouzi 28 北京 d 13 xiaoye 23 上海 e 14 yangyang 25 北京 f 15 zhouyang 30 上海 g 10 wangli 32 北京
df. duplicated( )
a False
b False
c False
d False
e False
f False
g True
dtype: bool
df. drop_duplicates( )
num name age address a 10 lili 25 北京 b 99 wangyi 20 上海 c 12 gouzi 28 北京 d 13 xiaoye 23 上海 e 14 yangyang 25 北京 f 15 zhouyang 30 上海
df
num name age address a 10 lili 25 北京 b 99 wangyi 20 上海 c 12 gouzi 28 北京 d 13 xiaoye 23 上海 e 14 yangyang 25 北京 f 15 zhouyang 30 上海 g 10 lili 25 北京
df. duplicated( [ 'num' ] )
a False
b False
c False
d False
e False
f False
g True
dtype: bool
df. drop_duplicates( [ 'num' ] )
num name age address a 10 lili 25 北京 b 99 wangyi 20 上海 c 12 gouzi 28 北京 d 13 xiaoye 23 上海 e 14 yangyang 25 北京 f 15 zhouyang 30 上海
df
num name age address a 10 lili 25 北京 b 99 wangyi 20 上海 c 12 gouzi 28 北京 d 13 xiaoye 23 上海 e 14 yangyang 25 北京 f 15 zhouyang 30 上海 g 10 lili 25 北京
df. drop_duplicates( [ 'num' ] , inplace= True )
df
num name age address a 10 lili 25 北京 b 99 wangyi 20 上海 c 12 gouzi 28 北京 d 13 xiaoye 23 上海 e 14 yangyang 25 北京 f 15 zhouyang 30 上海
df1
num name age address 0 10 lili 25 北京 1 99 555 20 上海 2 12 555 28 北京 3 13 555 23 上海 4 14 555 25 北京 5 15 zhouyang 30 上海 6 16 wangli 32 北京
num name age address 0 10 lili 25 北京 1 99 555 20 上海 2 12 555 28 北京 3 13 555 23 上海 4 14 555 25 北京 5 15 zhouyang 30 上海 6 16 wangli 32 北京
import numpy as np
df2 = pd. DataFrame( np. random. randint( 12 , size= ( 4 , 3 ) ) )
df2
df2. replace( 10 , NA)
0 1 2 0 1 1.0 NaN 1 0 1.0 11.0 2 2 5.0 1.0 3 9 NaN 2.0
df1
num name age address 0 10 lili 25 北京 1 99 555 20 上海 2 12 555 28 北京 3 13 555 23 上海 4 14 555 25 北京 5 15 zhouyang 30 上海 6 16 wangli 32 北京
df1. replace( '北京' , NA)
num name age address 0 10 lili 25 NaN 1 99 555 20 上海 2 12 555 28 NaN 3 13 555 23 上海 4 14 555 25 NaN 5 15 zhouyang 30 上海 6 16 wangli 32 NaN
df1
num name age address 0 10 lili 25 北京 1 99 555 20 上海 2 12 555 28 北京 3 13 555 23 上海 4 14 555 25 北京 5 15 zhouyang 30 上海 6 16 wangli 32 北京
df1. replace( [ 20 , 25 , 30 ] , [ NA, '北京' , 0 ] )
num name age address 0 10.0 lili 北京 北京 1 99.0 555 NaN 上海 2 12.0 555 28 北京 3 13.0 555 23 上海 4 14.0 555 北京 北京 5 15.0 zhouyang 0 上海 6 16.0 wangli 32 北京
df1. replace( { 32 : NA} )
num name age address 0 10.0 lili 25.0 北京 1 99.0 555 20.0 上海 2 12.0 555 28.0 北京 3 13.0 555 23.0 上海 4 14.0 555 25.0 北京 5 15.0 zhouyang 30.0 上海 6 16.0 wangli NaN 北京
df1. describe( )
num age count 7.000000 7.000000 mean 25.571429 26.142857 std 32.438954 4.140393 min 10.000000 20.000000 25% 12.500000 24.000000 50% 14.000000 25.000000 75% 15.500000 29.000000 max 99.000000 32.000000
df1[ ( np. abs ( df1[ 'age' ] ) > 25 ) ]
num name age address 2 12 555 28 北京 5 15 zhouyang 30 上海 6 16 wangli 32 北京
df1
num name age address 0 10 lili 25 北京 1 99 555 20 上海 2 12 555 28 北京 3 13 555 23 上海 4 14 555 25 北京 5 15 zhouyang 30 上海 6 16 wangli 32 北京
order = np. random. permutation( 7 )
order
array([4, 2, 1, 5, 0, 6, 3])
df1. iloc[ order]
num name age address 4 14 555 25 北京 2 12 555 28 北京 1 99 555 20 上海 5 15 zhouyang 30 上海 0 10 lili 25 北京 6 16 wangli 32 北京 3 13 555 23 上海
df1. take( order)
num name age address 4 14 555 25 北京 2 12 555 28 北京 1 99 555 20 上海 5 15 zhouyang 30 上海 0 10 lili 25 北京 6 16 wangli 32 北京 3 13 555 23 上海
df1. sample( n= 3 , replace= True )
num name age address 4 14 555 25 北京 5 15 zhouyang 30 上海 2 12 555 28 北京
dic= { 'one' : 'feixue' , 'two' : np. nan, 'three' : 'tom' , 'five' : 'jerry@film' }
s= pd. Series( dic)
s
one feixue
two NaN
three tom
five jerry@film
dtype: object
s. str . upper( )
one FEIXUE
two NaN
three TOM
five JERRY@FILM
dtype: object
df1
num name age address 0 10 lili 25 北京 1 99 555 20 上海 2 12 555 28 北京 3 13 555 23 上海 4 14 555 25 北京 5 15 zhouyang 30 上海 6 16 wangli 32 北京
aa= df1. stack( )
aa
0 num 10
name lili
age 25
address 北京
1 num 99
name 555
age 20
address 上海
2 num 12
name 555
age 28
address 北京
3 num 13
name 555
age 23
address 上海
4 num 14
name 555
age 25
address 北京
5 num 15
name zhouyang
age 30
address 上海
6 num 16
name wangli
age 32
address 北京
dtype: object
aa. unstack( 0 )
0 1 2 3 4 5 6 num 10 99 12 13 14 15 16 name lili 555 555 555 555 zhouyang wangli age 25 20 28 23 25 30 32 address 北京 上海 北京 上海 北京 上海 北京
df1. T
0 1 2 3 4 5 6 num 10 99 12 13 14 15 16 name lili 555 555 555 555 zhouyang wangli age 25 20 28 23 25 30 32 address 北京 上海 北京 上海 北京 上海 北京