一、python将两个表格合并在一起
1、纵向合并
data1, data2:用于合并的数据。
how:{‘left’, ‘right’, ‘outer’, ‘inner’},默认’inner’
on:label 或 list
返回: 两个合并对象的数据框架。
有4种类型的合并。
四种连接类型:inner(内连接),left(左外连接),right(右外连接),outer(完全外连接)
data1:
id | name | age |
---|---|---|
1 | a | 11 |
2 | b | 12 |
3 | c | 13 |
4 | d | 14 |
data2:
id | name | age |
---|---|---|
4 | d | 14 |
8 | d | 18 |
9 | e | 19 |
# 纵向合并
import pandas as pd
data1 = {'id': [1, 2, 3, 4],
'name': ['a', 'b', 'c', 'd'],
'age': [11, 12, 13, 14]}
data1 = pd.DataFrame(data1)
data2 = {'id': [4, 8, 9],
'name': ['d', 'd', 'e'],
'age': [14, 18, 19]}
data2 = pd.DataFrame(data2)
merge = pd.merge(data1, data2, how='inner')
print('inner\n', merge)
merge = pd.merge(data1, data2, how='left')
print('left\n', merge)
merge = pd.merge(data1, data2, how='right')
print('right\n', merge)
merge = pd.merge(data1, data2, how='outer')
print('outer\n', merge)
2、横向合并
# 横向合并
import pandas as pd
data1 = {'id': [1, 2, 3, 4],
'name': ['a', 'b', 'c', 'd']}
data1 = pd.DataFrame(data1)
data2 = {'id': [2, 3, 4],
'age': [12, 13, 14]}
data2 = pd.DataFrame(data2)
merge = pd.merge(data1, data2, on='id', how='outer')
print(merge)
二、python将文件夹中多个csv表格合并在一起
# python将文件夹中多个excel表格合并在一起
import os
import pandas as pd
inputp = r'E:/T'
filelist = os.listdir(inputp)
data1 = pd.read_csv("E:/T/info.csv")
for file in filelist:
filefullpath = inputp + "/" + file
data2 = pd.read_csv(filefullpath)
print(filefullpath)
df = pd.merge(data1, data2, how='outer')
df.to_csv('E:/Output/t.csv', index=False)
data1 = pd.read_csv('E:/Output/t.csv')
print("合并完成")
print(df)
三、python将文件夹中多个csv表格纵向合并
把文件夹中的两个表格合并在一起
文件们:长得一模一样的表头,不一样的数据内容。
表1数据:
表2数据
import os
import glob
import pandas as pd
inputp = 'E:/Input/in'
output = 'E:/Output/test.csv'
os.chdir(inputp) # 更改工作路径
df = pd.concat(map(pd.read_csv, glob.glob('*.csv'))) # 合并了合并了
print(df) # 看看数据
df.to_csv(output, index=False) # 保存吧
合并后的’E:/Output/test.csv’