在Pandas中,连接是将不同的数据集合并成一个更大的数据集的实用操作。Pandas提供了多个不同类型的连接方法,包括内连接、左连接、右连接和外连接。下面逐一进行详细讲解。
内连接
内连接是连接操作中最常见的一种,它只保留两个数据集中共有的部分,即取两个数据集的共同部分。在Pandas中,使用merge()
方法实现内连接。参数how='inner'
表示使用内连接。
import pandas as pd
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value': [5, 6, 7, 8]})
result = pd.merge(df1, df2, on='key', how='inner')
print(result)
上述代码的输出结果为:
key value_x value_y
0 B 2 5
1 D 4 6
左连接
左连接返回两个数据集中左边数据集的所有行以及右边数据中与左边数据集指定列所对应的行。在Pandas中,使用merge()
方法实现左连接。参数how='left'
表示使用左连接。
import pandas as pd
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value': [5, 6, 7, 8]})
result = pd.merge(df1, df2, on='key', how='left')
print(result)
上述代码的输出结果为:
key value_x value_y
0 A 1 NaN
1 B 2 5.0
2 C 3 NaN
3 D 4 6.0
右连接
右连接是左连接的逆操作,返回两个数据集中右边数据集的所有行以及左边数据中与右边数据集指定列所对应的行。在Pandas中,使用merge()
方法实现右连接。参数how='right'
表示使用右连接。
import pandas as pd
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value': [5, 6, 7, 8]})
result = pd.merge(df1, df2, on='key', how='right')
print(result)
上述代码的输出结果为:
key value_x value_y
0 B 2.0 5
1 D 4.0 6
2 E NaN 7
3 F NaN 8
外连接
外连接返回两个数据集中所有的行和列,对于左边和右边没有对应行和列的位置,填充NaN值。在Pandas中,使用merge()
方法实现外连接。参数how='outer'
表示使用外连接。
import pandas as pd
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value': [5, 6, 7, 8]})
result = pd.merge(df1, df2, on='key', how='outer')
print(result)
上述代码的输出结果为:
key value_x value_y
0 A 1.0 NaN
1 B 2.0 5.0
2 C 3.0 NaN
3 D 4.0 6.0
4 E NaN 7.0
5 F NaN 8.0
以上是Pandas中不同类型的连接的详细讲解。可以根据需要选择合适的连接方式将不同的数据集合并成一个更大的数据集。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas中不同类型的连接 - Python技术站