pandas3

一、约定引入

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

二、构造一个数据框

n1=np.random.random((20,6))
s1=DataFrame(n1)
s2=DataFrame(n1,columns=['a','b','c','d','e','f'])

三、缺失值的处理
1、利用reindex()方法对指定轴上的索引进行修改(增加或删除)

s3=s2.reindex(index=[1,2,3,4,5,6,7,8,9])#索引从1开始,只保留这几行
s3=s2.reindex(index=[i for i in range(10)])
s4=s2.reindex(index=[i for i in range(10)],columns=list(s2.columns)+['a'])#后加a列
s5=s2.reindex(index=[i for i in range(10)],columns=list(s2.columns)+['k'])#后加k列,内容为Nan

不管是行还是列,都是List格式传值
2、修改值

s5['a'][2]=np.nan #代表a列2行
s5.iloc[4]['c']=np.nan #代表4行c列
#DataFrame.iat函数用法,按照整数位置访问行/列 对的单个值,与iloc类似,两者都是基于整数的查找
s5[3,5]=np.nan

3、修改行数据

#新写一个数据框
s6=DataFrame(np.array([[1,np.nan,2,4],[2,3,4,np.nan]]))#需要两套中括号
a=np.array([[1,np.nan,2,4],[2,3,4,np.nan]])
s6=DataFrame(a,index=[0,1],columns=['a','b','c','d'])
#loc[M:N,m:n]代表取M:N行的m:n-1列的数据
#修改行数据
s6.iloc[1]=[1,2,3,4] #将第一行的值改
#加一行数据
s6.loc[2]=[2,2,3,4]#iloc只能对存在的下标行改数,不能指向不存在的索引行
#去除包含缺失值的行
s7=s6.dropna(how='any')#如果将s7改为s6,则输出s6时会显示dropna函数不起作用
#对缺失值的替换
s8=s6.fillna(value='t')#同样将原来的s6改后用新的变量来存才会显示更改后内容
#对数据进行布尔填充,空值的判断
print(pd.isnull(s6))
#数据描述性统计
a=s6.mean()#列取平均值
b=s6.mean(1)#行取平均值,默认跳过空值且不参与总数计算
#列相应位置累计和
print(s6.apply(np.cumsum))
#apply是运用函数
s9=s6.apply(lambda x:x.max()-x.min()) #默认是列轴

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值