如何使用Python中的Pandas按特定列合并两个csv文件
在这篇文章中,我们将讨论如何合并两个CSV文件,在pandas库中有一个函数pandas.merge()。合并的意思无非是将两个数据集根据共同的属性或列合并成一个。
语法: pandas.merge()
参数 :
- data1, data2:用于合并的数据帧。
- how:{‘left’, ‘right’, ‘outer’, ‘inner’},默认’inner’
- on:label 或 list
返回: 两个合并对象的数据框架。
有4种类型的合并。
- Inner
- Left
- Right
- Outer
我们将使用以下两个csv文件,即loan.csv和borrower.csv来执行所有操作。
Inner Join
通过设置how=’inner‘,它将基于指定的列合并两个数据框,然后返回新的数据框,其中只包含那些在两个原始数据框中都有匹配值的记录。
代码:
import pandas as pd
# reading two csv files
data1 = pd.read_csv('datasets/loan.csv')
data2 = pd.read_csv('datasets/borrower.csv')
# using merge function by setting how='inner'
output1 = pd.merge(data1, data2,
on='LOAN_NO',
how='inner')
# displaying result
print(output1)
输出:
左外联接
通过设置how=’left’,它将根据指定的列合并两个数据框,然后返回新的数据框,其中包含左数据框的所有记录,包括那些在右数据框中没有值的记录,并将右数据框的列值设置为NAN。
代码:
import pandas as pd
# reading csv files
data1 = pd.read_csv('datasets/loan.csv')
data2 = pd.read_csv('datasets/borrower.csv')
# using merge function by setting how='left'
output2 = pd.merge(data1, data2,
on='LOAN_NO',
how='left')
# displaying result
print(output2)
输出:
右外联接
通过设置how=’right’,它将根据指定的列合并两个数据框,然后返回新的数据框,其中包含右数据框的所有记录,包括那些在左数据框中没有数值的记录,并将左数据框的列值设置为NAN。
代码:
import pandas as pd
# reading csv files
data1 = pd.read_csv('datasets/loan.csv')
data2 = pd.read_csv('datasets/borrower.csv')
# using merge function by setting how='right'
output3 = pd.merge(data1, data2,
on='LOAN_NO',
how='right')
# displaying result
print(output3)
输出:
完全外联
通过设置how=’right’,它将根据指定的列合并两个数据框,然后返回包含两个数据框中的行的新数据框,并为其中一个数据框中缺少数据的地方设置NAN值。
代码:
import pandas as pd
# reading csv files
data1 = pd.read_csv('datasets/loan.csv')
data2 = pd.read_csv('datasets/borrower.csv')
# using merge function by setting how='outer'
output4 = pd.merge(data1, data2,
on='LOAN_NO',
how='outer')
# displaying result
print(output4)
输出: