如何使用Python Pandas通过共同的密钥合并许多TSV文件
对于数据分析来说,最重要的是数据,我们需要在使用它进行分析之前对其进行准备。有时,所需的数据可能分散在多个文件中,我们需要将它们合并。在这篇文章中,我们将用一个共同的键来合并多个TSV(Tab Separated Values)文件。这可以通过使用pandas Python库的合并方法来实现。这个方法允许我们通过使用一个共同的键来合并文件。
步骤:
- 导入pandas库
- 然后读取前两个tsv文件,使用pd.merge()函数合并它们,将’on’参数设置为两个文件中的共同列。然后将结果存储在一个名为 “Output_df “的新数据框架中。
- 将剩余的文件存储在一个列表中。
- 运行一个循环,对这些文件名进行迭代。逐一读取这些文件,并将其与 “Output_df “数据框合并。
- 在tsv文件中保存’Output_df’。
示例 1:
在这个例子中,我们将通过使用一个内联来合并tsv文件。我们为这个例子取了四个tsv文件,如下所示。
使用的文件: Customer.tsv , Account.tsv , Branch.tsv , Loan.tsv
# Import pandas library
import pandas as pd
# Read first two csv files with '\t' separator
tsv1 = pd.read_csv("Documents/Customer.tsv", sep='\t')
tsv2 = pd.read_csv("Documents/Account.tsv", sep='\t')
# store the result in Output_df dataframe.
# Here common column is 'ID' column
Output_df = pd.merge(tsv1, tsv2, on='ID',
how='inner')
# store remaining file names in list
tsv_files = ["Branch.tsv", "Loan.tsv"]
# One by one read tsv files and merge with
# 'Output_df' dataframe and again store
# the final result in Output_df
for i in tsv_files:
path = "Documents/"+i
tsv = pd.read_csv(path, sep='\t')
Output_df = pd.merge(Output_df, tsv,
on='ID', how='inner')
# Now store the 'Output_df'
# in tsv file 'Output.tsv'
Output_df.to_csv("Documents/Output.tsv",
sep="\t", header=True,
index=False)
输出:
输出.tsv
示例 2:
在这个例子中,我们将通过使用外层连接来合并tsv文件。我们为这个例子取了四个tsv文件,如下所示。
使用的文件: Course.tsv , Teacher.tsv , Credits.tsv , Marks.tsv
# Import pandas library
import pandas as pd
# Read first two csv files with '\t' separator
tsv3 = pd.read_csv("Documents/Course.tsv", sep='\t')
tsv4 = pd.read_csv("Documents/Teacher.tsv", sep='\t')
# store the result in Output_df dataframe.
# Here common column is 'Course_ID' column
Output_df2 = pd.merge(tsv3, tsv4, on='Course_ID', how='outer')
# store remaining file names in list
tsv_files = ["Credits.tsv", "Marks.tsv"]
# One by one read tsv files and merge with
# 'Output_df2' dataframe and again store
# the final result in 'Output_df2'
for i in tsv_files:
path = "Documents/"+i
tsv = pd.read_csv(path, sep='\t')
Output_df2 = pd.merge(Output_df2, tsv,
on='Course_ID', how='outer')
# Now store the 'Output_df2' in tsv file 'Output_outer.tsv'
# Here we replacing nan values with NA
Output_df2.to_csv("Documents/Output_outer.tsv", sep="\t",
header=True, index=False, na_rep="NA")
输出: