Python 实现多表和工作簿合并及一表按列拆分攻略
1. 合并多张表格
1.1. 读取并合并同一个文件夹下的所有表格
你可以通过 Pandas 库来实现对同一个文件夹下的所有表格进行读取和合并。
示例代码如下:
import pandas as pd
import glob
path = r'./path/to/folder/*.csv'
all_files = glob.glob(path)
li = []
for filename in all_files:
df = pd.read_csv(filename, index_col=None, header=0)
li.append(df)
frame = pd.concat(li, axis=0, ignore_index=True)
1.2. 合并两个不同的表格
对于两个不同的表格,可以使用 Pandas 的merge
方法来实现合并。
示例代码如下:
import pandas as pd
df1 = pd.read_csv('./path/to/table1.csv')
df2 = pd.read_csv('./path/to/table2.csv')
merged_df = pd.merge(df1, df2, on='key')
其中,key
指的是两个表格要合并的列。如果两个表格中的连接列名称不一致,可以使用left_on
和right_on
参数进行指定。
2. 合并多个工作簿
2.1. 合并同一工作簿内的多个工作表
可以使用 Pandas 的ExcelFile
方法来读取同一个工作簿内的多个工作表,并使用concat
方法合并这些表。
示例代码如下:
import pandas as pd
excel_file = pd.ExcelFile('./path/to/workbook.xlsx')
dfs = []
for sheet_name in excel_file.sheet_names:
df = excel_file.parse(sheet_name)
dfs.append(df)
merged_df = pd.concat(dfs, ignore_index=True)
2.2. 合并不同工作簿内的同名工作表
可以使用 Pandas 的read_excel
方法来读取多个工作簿内的同名工作表,并使用concat
方法合并这些表。
示例代码如下:
import pandas as pd
import glob
path = r'./path/to/folder/*.xlsx'
sheet_name = 'Sheet1'
all_files = glob.glob(path)
li = []
for filename in all_files:
df = pd.read_excel(filename, sheet_name=sheet_name)
li.append(df)
merged_df = pd.concat(li, ignore_index=True)
3. 一表按列拆分
可以使用 Pandas 的melt
方法来实现一表按列拆分。
示例代码如下:
import pandas as pd
df = pd.read_csv('./path/to/table.csv')
melted_df = pd.melt(df, id_vars=['id'], value_vars=['col1', 'col2'])
其中,id_vars
指定保留的列,value_vars
指定要拆分的列。
总结
Python 实现多表和工作簿合并及一表按列拆分的方法有很多,上面提到的只是其中几种常用的方法。希望可以对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 实现多表和工作簿合并及一表按列拆分 - Python技术站