这几天遇到一些合并表的需求。需要将多个表进行横向合并。查阅pandas的功能,提供了这个链接的作用。以下是读取多个csv的数据下面看一下实验过程。
1、 横向合并
首先,我们将表格设置为csv格式,每一个表格只包含2个字段id和price价格2个字段。
依次类推,建五个表,每一个表分别是 这样数据。
1 20
2 30
3 40
4 50
5 60
接下来利用pandas进行横向合并。pandas 提供read_csv数据,这个读取后返回DataFrame 对象。依次读取5个数据。这看起来并不美观,但是我们依次将命名不同数据df1…df5。有了这个数据,pandas可以采取链接方式将五个数据进行相关联起来。看如下代码。
import pandas as pd
df1 = pd.read_csv('./dian/1.csv')
df2 = pd.read_csv('./dian/2.csv')
df3 = pd.read_csv('./dian/3.csv')
df4 = pd.read_csv('./dian/4.csv')
df5 = pd.read_csv('./dian/5.csv')
# 横向合并
res = pd.concat([df1, df2, df3, df4, df5], axis=1)
# 打印结果
print(res)
res.to_excel('alldian.xlsx')
打开生成如下。
2、纵向合并
纵向合并代码和横向的基本上保持一致。不同之处改变一下方向设置为纵向。看如下代码。
res = pd.concat([df1, df2, df3, df4, df5], axis=0)
import pandas as pd
df1 = pd.read_csv('./dian/1.csv')
df2 = pd.read_csv('./dian/2.csv')
df3 = pd.read_csv('./dian/3.csv')
df4 = pd.read_csv('./dian/4.csv')
df5 = pd.read_csv('./dian/5.csv')
# 横向合并
res = pd.concat([df1, df2, df3, df4, df5], axis=0)
# 打印结果
print(res)
res.to_excel('alldian.xlsx')
以上2个也是pandas里面比较有用的功能。代码也非常简洁。同理,
pd.read_excel读取excel方式也是可以实现类似功能,只是2者格式不一样而已。