《利用python进行数据分析》之填充缺失数据

  • 《利用python进行数据分析》之填充缺失数据
# -*- coding: utf-8 -*-
"""
Created on Fri Nov 16 21:12:25 2018

@author: muli
"""

from pandas import Series,DataFrame
import pandas as pd
import numpy as np


from numpy import nan as NA

# 填充缺失数据
# 如果不想滤除数据,而是希望填充数据。
# 通过一个常数来fillna就会将缺失值替换为那个常数值

df=DataFrame(np.random.randn(7,3))
print(df)
print("--------")
# [hang,lie]
df.ix[:4,1]=NA;
df.ix[:2,2]=NA
print(df)
print("--------")

#通过一个常数来fillna就会将缺失值替换为那个常数值:
print(df.fillna(0))
print("--------------")

#通过一个字典调用fillna,就可以实现对不同的列填充不同的值:
# 对不同的列,进行赋值处理
print(df.fillna({1:0.5,
                 2:-1}))

print("**********************")
# fillna默认会返回新对象,但是也可以对现有的对象进行修改:
# 即 会改变 原来的值
df22=df.fillna(100,inplace=True)
print(df)

print("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%")
# 对reindex有效的那些插值方法也可以用于fillna
df=DataFrame(np.random.randn(6,3))
print(df)
print("------")
df.ix[2:,1]=NA;
df.ix[4:,2]=NA
print(df)

print("------")
# 向前填充
print(df.fillna(method='ffill'))
print("-----")

# 即向前填充,但 只填充 2 个
print(df.fillna(method='ffill',limit=2))
print("-----")

#只要稍微动脑子,就可以利用fillna的=实现许多的别的功能。
#比如,传入Series的平均值或中位数:
data=Series([1.,NA,3.5,NA,7])
# 对有值的数据进行求均值
print(data.fillna(data.mean()))


你可能感兴趣的:(python)