2025年03月04日 Python DataFrame Concatenation 极客笔记
在数据处理和分析中,经常会涉及到合并不同数据源的操作。在Python中,Pandas库提供了很多函数来处理数据合并的需求。在本文中,我们将重点介绍DataFrame的concat()函数,该函数可以用来按照指定的轴将多个DataFrame合并成一个。
DataFrame的concat()函数可以按照指定的轴将多个DataFrame连接起来。这种操作可以类似于SQL中的UNION操作,将多个表的数据按行或列合并起来。
在concat()函数中,有几个常用的参数:
下面我们通过一个示例来演示DataFrame的concatenation。
import pandas as pd
# 创建两个DataFrame对象
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'A': [5, 6], 'B': [7, 8]})
# 按行连接两个DataFrame
result = pd.concat([df1, df2], axis=0, ignore_index=True)
print(result)
运行以上代码,输出如下:
A B
0 1 3
1 2 4
2 5 7
3 6 8
通过上面的代码,我们可以看到两个DataFrame对象被按行连接到一起,并且生成了新的索引。
除了按行连接DataFrame,我们还可以按列连接DataFrame。只需要将参数axis设置为1即可。
下面我们通过一个示例来演示按列连接DataFrame。
import pandas as pd
# 创建两个DataFrame对象
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'C': [5, 6], 'D': [7, 8]})
# 按列连接两个DataFrame
result = pd.concat([df1, df2], axis=1)
print(result)
运行以上代码,输出如下:
A B C D
0 1 3 5 7
1 2 4 6 8
通过上面的示例代码,我们可以看到两个DataFrame对象被按列连接到一起,生成了一个新的DataFrame。
在concat()函数中,有一个参数join用来指定连接方式,默认是outer,表示取并集。我们也可以指定为inner,表示取交集。
下面我们通过一个示例来演示指定join方式为inner的情况。
import pandas as pd
# 创建两个DataFrame对象
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'A': [2, 3], 'B': [4, 5]})
# 指定join方式为inner连接
result = pd.concat([df1, df2], axis=0, join='inner', ignore_index=True)
print(result)
运行以上代码,输出如下:
A B
0 1 3
1 2 4
2 2 4
3 3 5
通过指定join方式为inner,我们可以看到只保留了两个DataFrame对象中共有的行。
在合并DataFrame的时候,有时候我们想忽略原有的索引,重新生成一个索引。这时候可以将参数ignore_index设置为True。
下面我们通过一个示例来演示忽略原有索引的情况。
import pandas as pd
# 创建两个DataFrame对象
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'A': [5, 6], 'B': [7, 8]})
# 忽略原有索引
result = pd.concat([df1, df2], axis=0, ignore_index=True)
print(result)
运行以上代码,输出如下:
A B
0 1 3
1 2 4
2 5 7
3 6 8
通过设置ignore_index为True,我们可以看到生成了一个新的索引。
在本文中,我们介绍了DataFrame的concatenation操作,通过concat()函数可以很方便地将多个DataFrame对象连接起来。我们演示了按行连接、按列连接、指定join方式和忽略原有索引等用法。
本文链接:http://so.lmcjl.com/news/24259/