利用python进行科学计算,numpy和pandas这两个库是必不可少的。
上一篇介绍了pandas库的Series和DataFrame,以及DataFrame的基本方法,这篇的数据导入导出,数据合并等,
读写文件
pandas可以读取与存取的资料格式有很多种,像csv、excel、json、html与pickle等
这里是官方文档:pandas IO Tools
合并concat
使用pandas的DataFrame时,常常需要进行合并操作。
1 | df1 = pd.DataFrame(np.ones((3,4))*0, columns=['a','b','c','d']) |
1 | # axis=0进行横向合并,axis=1进行纵向合并 |
可以发现,index此时还是按照每个df之前的值,如果想重置index,设置ignore_index=True即可
1 | # axis=0进行横向合并,axis=1进行纵向合并 |
index恢复正常。
前面我们合并的数据集的列名完全相同,所以合并后的列数不变。如果合并的数据集的列并不完全相同呢?
1 | #定义资料集 |
如果join的值设置为inner,那么只有相同的column合并在一起,其他的会被抛弃。
append添加数据
append方法可以将一个数据集添加到另一个数据集的下方,也就是纵向合并
1 | df1.append(df2, ignore_index=True) |
多key合并merge
merge方法与concat方法类似,但merge可以用于有两列作为key的数据。先看只有一组key列的情况
1 | #定义资料集并打印出 |
接下来我们定义有两列作为key的合并
1 | #定义资料集并打印出 |
indicator=True会将合并的记录放在新的一列
1 | #定义资料集并打印出 |