这一节,我们学习如何将“transaction_1.csv”文件和“transaction_2.csv”文件合并起来。观察这两个数据文件可以发现,数据文件的数据列都是一样的。这种情况下的所谓合并,就是相同结构下数据量的增加,好比原来是11层楼(transaction_1.csv),现在再增加盖5层楼(transaction_2.csv)的意思,也就是数据的纵向完全合并。
上一节中,我们已经将“transaction_1.csv”文件转换成了transaction_1 变量,接下来,再读取“transaction_2.csv”文件,转换成transaction_2 变量。代码如下:
transaction_2 = pd.read_csv('transaction_2.csv')
transaction = pd.concat([transaction_1,transaction_2],ignore_index=True)
transaction.head()
解释一下代码:
第1行:使用pandas中的read_csv函数,读取外部的“transaction_2.csv”文件,转换成pandas的处理数据对象,存储到transaction_2变量中。
第2行:使用concat函数,将transaction_1变量和transaction_2变量纵向合并。其中,参数ignore_index的含义是不保留连接轴上的索引,产生一组新索引。
第3行:使用head()函数,将transaction_2变量的前5行数据显示出来。
点击"运行",执行效果如下图所示。
观察Out的结果,我们并不能知道transaction_1变量和transaction_2变量,是否已经完全合并了呢?
那么,我们可以通过计算合并前与合并后的行数的变化,来判断合并是否完全以及数量正确。
代码如下:
print(len(transaction_1)) print(len(transaction_2)) print(len(transaction))
点击"运行",执行效果如下图所示。
解释一下代码:
len函数可以计算出每个变量的行数,从结果可以发现,5000+1786=6786。所以,数据合并是完整的。
按照同样的方法,我们再将“transaction_detail_1.csv”文件和“transaction_detail_2.csv”文件合并成一个对象。代码如下:
transaction_detail_2 = pd.read_csv('transaction_detail_2.csv')
transaction_detail = pd.concat([transaction_detail_1,transaction_detail_2],ignore_index=True)
transaction_detail.head()
点击"运行",执行效果如下图所示。
数据完全合并后,相信你马上就会想到,能不能将 transaction 和 transaction_detail 也合并到一起呢?这就不是数据纵向的完全合并,而是横向的关联合并了。
下一节继续!
此处为语雀文档,点击链接查看:https://www.yuque.com/codeclub/yvmeco/friz9v