1.pandas数据过滤
import pandas as pd
from pandas import DataFrame,Series
import numpy as np
dict1 = {'age':[12,23,34,45],
'name':['小宁','小红','小兰','小花'],
'sex':['男','女','男','女']}
df1 = pd.DataFrame(dict1,index = ['a','e','w','r'])
print(df1)
age name sex
a 12 小宁 男
e 23 小红 女
w 34 小兰 男
r 45 小花 女
df1['英语'] = ['66','77','88','87']
df1['语文'] = ['66','77',np.NaN,'87']
df1['数学'] = ['66','77','88','87']
df1[df1.columns[3:]]
英语 语文 数学 address
a 66 66 66
e 77 77 77
w 88 NaN 88
r 87 87 87
s NaN NaN NaN
pandas 空数据处理
isnull 函数判断是否含有空数据,如果有为True否则为False,notnull函数和isnull函数相反
df1.isnull()
age name sex 英语 语文 数学
a False False False False False False
e False False False False False False
w False False False False True False
r False False False False False False
对数据添加行和列:
df1
age name sex 英语 语文 数学
a 12 小宁 男 66 66 66
e 23 小红 女 77 77 77
w 34 小兰 男 88 NaN 88
r 45 小花 女 87 87 87
df1['address'] = ['上海',np.NaN,np.NaN,np.NaN,np.NaN]
df1.ix['s'] = ['32','红','55',np.NaN,np.NaN,np.NaN,np.NaN,]
age name sex 英语 语文 数学 address
a 12 小宁 男 66 66 66 上海
e 23 小红 女 77 77 77 NaN
w 34 小兰 男 88 NaN 88 NaN
r 45 小花 女 87 87 87 NaN
s 32 红 55 NaN NaN NaN NaN
删除所有带nan的行:
df1.dropna(how = 'any',axis = 0)
age name sex 英语 语文 数学 address
a 12 小宁 男 66 66 66 上海
删除所有带nan的列:
df1.dropna(how = 'any',axis = 1)
age name sex
a 12 小宁 男
e 23 小红 女
w 34 小兰 男
r 45 小花 女
s 32 红 55
注意:axis 是表示行和列的参数,如个axis=1代表列,axis=0代表行
使用0填充数据,需要用到函数:fillna()
df1.fillna(0)
age name sex 英语 语文 数学 address
a 12 小宁 男 66 66 66 上海
e 23 小红 女 77 77 77 0
w 34 小兰 男 88 0 88 0
r 45 小花 女 87 87 87 0
s 32 红 55 0 0 0 0