df.fillna()

df.fillna() 是一个 Pandas 数据处理库中的函数,它可以用来填充数据框中的空值。它的用法如下:

df.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)

其中,value 参数表示要填充的值,method 参数表示填充的方法,axis 参数表示要填充的轴(0 表示行,1 表示列),inplace 参数表示是否在原数据框上进行修改,limit 参数表示最多填充多少个空值,downcast 参数表示在填充完成后对数据进行类型转换。

例如,假设有一个名为 df 的数据框,我们可以使用如下代码将其中的空值填充为 0:

df.fillna(value=0)

或者使用如下代码将其中的空值填充为上一行的值:

df.fillna(method='ffill')

更多关于 df.fillna() 的用法和细节,可以参考 Pandas 官方文档或其他相关资料。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Titanic数据分析 利⽤Pandas对泰坦尼克数据进⾏分析 1.导⼊数据 导⼊数据,对数据做个简单的统计 import pandas as pd import matplotlib.pyplot as plt # 导⼊数据 titanic = pd.read_csv(r"⾃⼰电脑上这个⽂件的路径\train.csv") # 快速预览 print(titanic.head()) print(titanic.info()) # 把所有数值类型的数据做⼀个简单的统计 print(titanic.describe()) #describe函数⽐info函数功能更强⼤,统计所有⾮空数据的条数,mean平均值,std标准差,min和max最⼩最⼤值 # 统计null值个数 print(titanic.isnull().sum()) 2. 处理空值 # 可以填充整个dataframe⾥⾯的空值 # titanic.fillna(0) #将空值都填充为0 # 单独选择⼀列进⾏空值填充 # titanic.Age.fillna(0) # 年龄⽤0填充不合适,可以⽤中位数进⾏填充 # 年龄的中位数 print(titanic.Age.median()) #输出结果为28 # 按年龄中位数去填充,此时返回⼀个新的series print(titanic.Age.fillna(titanic.Age.median())) # 直接填充,并不返回新的series titanic.Age.fillna(titanic.Age.median(), inplace = True) # 再次查看Age的空值 print(titanic.isnull().sum()) #此时发现,age的空值为0了 3. 尝试从性别进⾏分析 # 做简单的汇总统计,value_counts这个函数会经常⽤到 print(titanic.Sex.value_counts()) #男性577,⼥性314 # ⽣还者中,男⼥的⼈数 survived = titanic[titanic.Survived==1].Sex.value_counts() print(survived) #男性109,⼥性233 # 未⽣还者中,男⼥的⼈数 dead = titanic[titanic.Survived==0].Sex.value_counts() print(dead) #男性468,⼥性81 3.1. 尝试绘图 先看⼀下画出的柱状图是什么样的 # 尝试⽤pandas⾃带绘图 df = pd.DataFrame([survived, dead],index = ['survived', 'dead']) # 由于汇总统计输出的数据类型是series,有两列,所以可以⽤dataframe构建 df.plot.bar() plt.show() 绘图成功,但是不是我们想要的效果 我们想把⼥性的死亡和⽣还⼈数画⼀起,把男性的死亡和⽣还⼈数画⼀起,这时候我们可以把dataframe转置⼀下 df = df.T print(df) 转置成功,这时候再画⼀下 仍然不是我们想要的结果 尝试把直⽅图堆积在⼀起,直观⼀点 df.plot(kind = 'bar', stacked = True) plt.show() 效果如图: 由于男⼥⼈数不⼀样,没法直观看到男⼥⽣还⼈数的百分⽐ df['p_survived'] = df.survived / (df.survived + df.dead) df['p_dead'] = df.dead / (df.survived + df.dead) print(df) 此时⽣还和死亡的百分⽐就出来了,⼥性的死亡和⽣还的百 分⽐相加是100%。注意分母要⽤括号括起来! 下⾯绘制男⼥中⽣还者的⽐例情况的图 # 男⼥中⽣还者的⽐例情况 df['p_survived'] = df.survived / (df.survived + df.dead) df['p_dead'] = df.dead / (df.survived + df.dead) df[['p_survived','p_dead']].plot(kind='bar', stacked = True) plt.show() 通过上图可以看出,性别特征对是否⽣还的影响还是挺⼤的 4. 从年龄进⾏分析 # 简单统计 print(titanic.Age.value_counts()) 与性别类似,对年龄进⾏Dataframe,打印看⼀下 # 因为年龄只有⼀列数据,不适合⽤柱状图,这⾥尝试⽤直⽅图画⼀下 # ⽣还者的年龄 survived = titanic[titanic.Survived==1].Age # 未⽣还者
Python 数据挖掘与分析 数据挖掘与分析全文共36页,当前为第1页。 数据处理过程 数据挖掘与分析全文共36页,当前为第2页。 数据获取和收集从数据源获取: From Excel import pandas as pd import numpy as np data1=pd.read_excel("filename.xlsx")#使用pandas读取excel From CSV #ocding:utf-8 import numpy as np import pandas as pd df00=pd.read_csv('20161009.csv',delimiter=';') From 网页: urllib urllib2 httplib httplib2 import urllib import re dBytes = urllib.request.urlopen('http://aaa.bbb.ccc/page').read() dStr = dBytes.decode() #在python3中urllib.read() 语句功能是将dBytes转换成Str m = re.findall('正则解析表达式', dStr) 例如:利用正则表达式解析表格内容 数据挖掘与分析全文共36页,当前为第3页。 获取并连接: #coding:utf-8 import numpy as np import pandas as pd print '===========' lcsv=[] lcsv.append(pd.read_csv('20161009.csv',delimiter=';',names=['date','val','name','cop','acter','directer','type'])) lcsv.append(pd.read_csv('20161016.csv',delimiter=';',names=['date','val','name','cop','acter','directer','type'])) lcsv.append(pd.read_csv('20161023.csv',delimiter=';',names=['date','val','name','cop','acter','directer','type'])) lcsv.append(pd.read_csv('20161030.csv',delimiter=';',names=['date','val','name','cop','acter','directer','type'])) print '-------------' nf=pd.concat(lcsv) print nf 原理与要点: Concat的参数是一个 "列表" 扩展:利用OS,浏览目录,获得 Filename List,利用遍历 Filename List, 打开多个文件 数据挖掘与分析全文共36页,当前为第4页。 数据整理例如:整理、去空、去重、合并、选取、数据准备: 重要准备:index,header,columns header-1 header-2 header-3 header-4 …… index-0 index-1 index-2 index-3 index-4 index-5 index-6 index-7 …… 显示各要素: 显示索引 显示列名 显示数据的值 显示数据描述 数据挖掘与分析全文共36页,当前为第5页。 数据清洗和整理例如:去空、去重、合并、选取、数据准备: 显示各要素: 显示索引 df.index 显示列名 df.columns 显示数据的值 df.values 可以重构一个DataFrame 扩展:rdf=pd.DataFrame(data,index=inxlst,columns=colst) 显示数据描述 df.describe ,简报 数据挖掘与分析全文共36页,当前为第6页。 数据清洗和整理去空、处理缺失: isnull(),notnull() #测试空(not null)值,返回True,False dropna() #dropna(axis=1,how='all'),按列删除 all Na,缺省为axis=0,即按行 df.fillna() #填充,inpalce,不产生副本 #fillna(0)填充0,fillna({c1:v1,cx:vx})利用字典x列填充v #可以利用函数:mean、random.randon等等 数据挖掘与分析全文共36页,当前为第7页。 数据清洗和整理去重: duplicated() #测试重值,返回True,False drop_duplicates () #填充,inpalce,不产生

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值