pandas处理丢失数据

#有两种丢失数据的方式:
#    None

#    np.nan(NaN) 

#1, None
# None是python当中自带的,类型为python object,

# 所以,None是不能参与到任何的计算当中的

#2, np.nan

#np.nan是浮点类型,能参与到计算当中,但是计算的结果为NaN

#pandas中None与np.nan都被视为np.nan
import numpy as np
import pandas as pd
from pandas import Series,DataFrame

df1 = DataFrame(data=np.random.randint(0,100,size=(3,3)),
               columns=list('ABC'))
df1

df1.loc[0,'B'] = None
df1

df1['C'] = np.nan
df1

#pandas中None与np.nan的操作
#isnull()
#notnull()
#dropna()  过滤丢失的数据
#fillna()  填充丢失的数据

#新增一行,一列
df1.loc[3] = [12,12,34]
df1

#dropna()默认是过滤所以丢失的值
df1.dropna()

#使用axis可以控制轴向变化
df1.dropna(axis=1)

# value的参数默认是把所以的空值填充
df1.fillna(value=100)

#假设张三,李四,王五参加模拟考试,但是张三因为突然想明白了人生,故而放弃了英语考试。
#因为记为None,据此请创建一个DataFrame,命名为score
data = np.random.randint(0,100,size=(3,3))
columns = ['yuwen','shuxue','yingyu']
index = ['zhangsan','lisi','wangwu']
score = DataFrame(data=data,index=index,columns=columns)
score

score.loc['zhangsan','yingyu'] = np.nan
score

#老师决定根据用数学的分数来填充张三的英语成绩,如何实现
#用李四的英语成绩来填充张三的英语成绩?
score.fillna(method='ffill',axis=1)

score.fillna(method='bfill',axis=0)





猜你喜欢

转载自blog.csdn.net/qq_42034590/article/details/80724550