一 、Pandas 导入导出
pandas
可以读取与存取的资料格式有很多种,像csv
、excel
、json
、html
与pickle
等…。
读取文件
1 | #读取csv |
二 、Pandas 合并 concat
合并的时候,需要用一个变量去接受合并之后的数据,如果 df.append(df2) 之后,直接print(df), df 没有发生任何变化。需要 df = df.append(df2),df 才会变化。concat 也是如此
axis (合并方向)
axis=0
是预设值,因此未设定任何参数时,函数默认axis=0
。ignore_index (重置 index)
1 | # concat 纵向合并,横轴的 index 也只是合并没有更新 |
join (合并方式)
join=’outer’为预设值,因此未设定任何参数时,函数默认join=’outer’。此方式是依照column来做纵向合并,有相同的column上下合并在一起,其他独自的column个自成列,原本没有值的位置皆以NaN填充。
1 | #定义资料集 |
join_axes (依照 axes 合并)
1 | #依照`df1.index`进行横向合并,也就是合并之后的 index 是 df1的index,df2单独的index 行会删除,df2 没有的元素会 默认为 NAN |
append (添加数据)
append只有纵向合并,没有横向合并。
1 | res = df1.append(df2, ignore_index=True) |
三、Pandas 合并 merge
pandas
中的merge
和concat
类似,但主要是用于两组有key column的数据,统一索引的数据. 通常也被用在Database的处理当中
依据一组key合并
on 是按照哪一个 type 合并,这里是按照 type 为 ‘key’ 的纵列合并
1 | res = pd.merge(left, right, on='key') |
依据两组key合并
合并时有4种方法how = ['left', 'right', 'outer', 'inner']
,预设值how='inner'
。inner 就是相同的合并,不同的舍弃。
1 | # 按照 key1 和 key2 相同合并,不同舍弃 |
Indicator 改变合并的记录位置
indicator=True
会将合并的记录放在新的一列。
1 | #定义资料集并打印出 |
依据index合并
指定 index
1 | #定义资料集并打印出 |
解决overlapping的问题
overlapping 就是合并重合。比如下面这个例子 boys 里面有 age,girls 里面也有 age,如果合并一个对象,怎么知道每组 age 是 boys 还是 girls。此时可以通过 suffixes 给 age 加上不同的后缀。
1 | #定义资料集 |