python中concat中连接方式inner和outer的区别
时间: 2024-01-24 11:16:54 浏览: 259
在Python中,concat函数用于将两个或多个数据框按照指定的轴连接起来。其中,连接方式有两种:inner和outer。
内连接(inner):只连接两个数据框中在连接键上有匹配的行,没有匹配的行会被删除。
外连接(outer):连接两个数据框中所有行,如果某个数据框中在连接键上没有匹配的行,则会在该行填充缺失值。
具体来说,如果我们有两个数据框df1和df2,连接键为key,使用inner方式连接,则只会返回两个数据框中在连接键上都有匹配的行;而使用outer方式连接,则会返回所有行,其中没有匹配的行会被填充缺失值。
示例代码如下:
```python
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]})
# 使用inner方式连接
inner_join = pd.concat([df1, df2], axis=0, join='inner')
print(inner_join)
# 使用outer方式连接
outer_join = pd.concat([df1, df2], axis=0, join='outer')
print(outer_join)
```
输出结果分别为:
```
key value
1 B 2
3 D 4
key value
0 A 1
1 B 2
2 C 3
3 D 4
0 B 5
1 D 6
2 E 7
3 F 8
```
可以看到,使用inner方式连接后,只有df1和df2中在连接键上有匹配的行被保留;而使用outer方式连接后,所有行都被保留,并且在没有匹配的行上填充了缺失值。
阅读全文