Pandas DataFrame中的concat和append方法
在本文中,我们将介绍Pandas DataFrame中的concat和append方法,这两种方法在处理数据框时都可以用于将多个数据框合并成一个,但它们有着不同的应用场景和使用方法。
阅读更多:Pandas 教程
concat方法
concat方法可以将多个数据框按照某个轴进行拼接。例如,我们有两个数据框如下:
import pandas as pd
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3'],
'C': ['C0', 'C1', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2', 'D3']},
index=[0, 1, 2, 3])
df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'],
'B': ['B4', 'B5', 'B6', 'B7'],
'C': ['C4', 'C5', 'C6', 'C7'],
'D': ['D4', 'D5', 'D6', 'D7']},
index=[4, 5, 6, 7])
我们可以通过以下方式将它们拼接起来:
result = pd.concat([df1, df2])
默认情况下,concat方法会按照行的方向进行拼接,即将df2的数据框追加到df1下方,形成一个新的数据框。如果想改变拼接方向,则可以通过axis参数来指定。例如,以下代码可以让df2的数据框追加到df1的右侧:
result = pd.concat([df1, df2], axis=1)
concat方法还可以对缺失值进行填充。我们可以通过join参数来指定合并方式,例如:
df3 = pd.DataFrame({'B': ['B2', 'B3', 'B6', 'B7'],
'D': ['D2', 'D3', 'D6', 'D7'],
'F': ['F2', 'F3', 'F6', 'F7']},
index=[2, 3, 6, 7])
result = pd.concat([df1, df3], axis=1, join='inner')
join参数可选值包括:inner(交集)、outer(并集)、left(仅使用左边数据框的索引)和right(仅使用右边数据框的索引)。
append方法
append方法可以将一个数据框追加到另一个数据框的末尾,类似于concat方法中的axis=0。例如:
result = df1.append(df2)
append方法还可以用于新增行,例如:
s = pd.Series(['A8', 'B8', 'C8', 'D8'], index=['A', 'B', 'C', 'D'])
result = df1.append(s, ignore_index=True)
ignore_index=True表示忽略原数据框的索引,重新生成索引。
注意,append方法的效率比concat方法低,尽量避免在循环中使用。
总结
concat和append方法都可以用于数据框的拼接,但它们的应用场景和使用方法不同,需要根据具体情况灵活选择。在进行大量的拼接操作时,建议使用concat方法,以提高效率。
极客教程