[利用python进行数据分析 书笔记]第7章 数据规整化:清理、转换、合并、重塑

合并数据集

数据库风格的DataFrame合并




索引上的合并

merge参数上采用left_index和right_index
join方法在连接键上做做左连接,支持参数的索引和某个列之间的连接
left1.join(right1 , on ='key')


轴向连接

pd.concat()



合并重叠数据

a.combine_first(b)如果a不存在就用b补上


重塑和轴向旋转

重塑层次化索引

stack将数据的列“旋转”为行(操作最内层)需传入其他层级别进行操作,默认滤除缺失数据
unstack将数据的行“旋转”为列(操作最内层)需传入其他层级别进行操作

将“长格式”旋转为“宽格式”

data.pivot('a','b','c')前两个参数值分别用作行和列索引的列名,最后一个参数值则是填充DataFrame的数据列的列名
也可以用set_index创建层次化索引,再用unstack重塑


数据转换

转移重复数据

data.duplicated()返回一个布尔型Series,表示各行是否重复行
data.drop_duplicates()返回一个移除了重复行的DataFrame
两个都默认保留第一个出现的值组合,传入take_last = true 则保留最后一个


利用函数或映射进行数据转换

map方法接受一个函数或含有映射关系的字典型对象

替换值

fillna方法填充缺失数据也可以看作值替换的一种特殊情况
map方法修改对象的数据子集
replace方法data.replace([-999,-1000],[np.nan,0])    传入一个由替换关系组成的列表
data.replace({-999:np.nan,-1000:0})   传入字典


重命名轴索引

map方法轴标签也有一个map方法。Data.index.map(str.upper)
rename方法data.rename(index = str.upper,columns = str.upper)   
data.rename(index = {'a':'b'})     传入字典型对象实现对部分轴标签更新
rename进行的是复制,传入inplace =true 可就地修改某个数据


离散化和面元划分

cut函数pd.cut(arr,bins划分的数组)
arr.labels
arr.levels
pd.value_counts(arr)
通过right = false可以进行闭端修改
参数labels = []可以对面元名称进行修改
pd.cut(data,4,precision =2)    分成四组
qcut可根据样本分位数对数据进行面元划分


排列和随机采样

sampler =np.random.permutation()sampler = np.random.randint()  randint得到一组随机整数
dff = df.take(sampler)


计算指标/哑变量

将分类变量转换为“哑变量矩阵”或“指标矩阵”。如果某列中有k个不用的值,则可以拍生出一个k列矩阵。

pd.get_dummies(列,prefix= ‘前缀’)派生出一个k列矩阵

字符串操作

字符串对象方法




正则表达式



pandas中矢量化的字符串函数

两个实现矢量化的元素获取操作的办法:1.使用str.get  2.在str属性上进行索引








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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值