pandas 空数据处理和数据过滤

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

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页