合并数据集
![[利用python进行数据分析 书笔记]第7章 数据规整化:清理、转换、合并、重塑 [利用python进行数据分析 书笔记]第7章 数据规整化:清理、转换、合并、重塑](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzMwOS9hZjc1NmRlNTk1NDYzNzQ2MmViYzJiYTc2MjMwNDQyNS5KUEVH)
数据库风格的DataFrame合并
![[利用python进行数据分析 书笔记]第7章 数据规整化:清理、转换、合并、重塑 [利用python进行数据分析 书笔记]第7章 数据规整化:清理、转换、合并、重塑](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzkzOC9jMzczOTAzYzYyYzA0ZmFkMTc1M2JkZDdiZTY2NzY1Mi5KUEVH)
![[利用python进行数据分析 书笔记]第7章 数据规整化:清理、转换、合并、重塑 [利用python进行数据分析 书笔记]第7章 数据规整化:清理、转换、合并、重塑](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzY3Ni9mOGFhNjM3N2Y0NDA2ZGY0MWViZWNlYjJkNTQ2ZTJjNC5KUEVH)
索引上的合并
merge参数上采用left_index和right_index |
join方法 | 在连接键上做做左连接,支持参数的索引和某个列之间的连接 |
left1.join(right1 , on ='key') |
轴向连接
pd.concat()
![[利用python进行数据分析 书笔记]第7章 数据规整化:清理、转换、合并、重塑 [利用python进行数据分析 书笔记]第7章 数据规整化:清理、转换、合并、重塑](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzM2NC81MTk0N2JhMzRiYWFhOGU0ODEzYzEzYmE0MDljYWI5NC5KUEVH)
合并重叠数据
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列矩阵 |
字符串操作
字符串对象方法
![[利用python进行数据分析 书笔记]第7章 数据规整化:清理、转换、合并、重塑 [利用python进行数据分析 书笔记]第7章 数据规整化:清理、转换、合并、重塑](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzI4OS8wN2FkMjllZGM1YmRjYzQzZjljZTcyZWMyOTY5MmY3OS5KUEVH)
![[利用python进行数据分析 书笔记]第7章 数据规整化:清理、转换、合并、重塑 [利用python进行数据分析 书笔记]第7章 数据规整化:清理、转换、合并、重塑](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzg2NS82ZjczZGM0YzljMGE0NWJiZThhM2U1MTZlYTc1OGVkOS5KUEVH)
正则表达式
![[利用python进行数据分析 书笔记]第7章 数据规整化:清理、转换、合并、重塑 [利用python进行数据分析 书笔记]第7章 数据规整化:清理、转换、合并、重塑](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzg2MS9hZmFjZTkxZmUyNTlhZmEyZDIzYjExNTNkZjA2NTY0NS5KUEVH)
pandas中矢量化的字符串函数
两个实现矢量化的元素获取操作的办法:1.使用str.get 2.在str属性上进行索引
![[利用python进行数据分析 书笔记]第7章 数据规整化:清理、转换、合并、重塑 [利用python进行数据分析 书笔记]第7章 数据规整化:清理、转换、合并、重塑](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzcxNi81YzAwZjQxZmUwMzQ5ODIwZDFkOGFkZTg2OTllMmQ0Yy5KUEVH)