📅  最后修改于: 2023-12-03 15:18:15.031000             🧑  作者: Mango
在 Pandas 中,我们经常需要将多个数据框按列拼接起来。一种实用的方法是将这些数据框放在一个列表中,然后使用 concat
函数将它们拼接在一起。
假设我们有三个数据框 df1
、df2
和 df3
,它们具有相同的行索引。现在我们要将它们按列拼接起来,得到一个新的数据框。以下是示例代码:
import pandas as pd
# 创建示例数据框
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'C': [7, 8, 9], 'D': [10, 11, 12]})
df3 = pd.DataFrame({'E': [13, 14, 15], 'F': [16, 17, 18]})
# 将三个数据框放在一个列表中
df_list = [df1, df2, df3]
# 按列拼接数据框
result = pd.concat(df_list, axis=1)
# 显示拼接结果
print(result)
输出结果为:
A B C D E F
0 1 4 7 10 13 16
1 2 5 8 11 14 17
2 3 6 9 12 15 18
其中,pd.concat
函数的 axis
参数表示拼接方向,axis=1
表示按列拼接。
除了将多个数据框按列拼接外,我们也可以将一个数据框列表作为一列拼接到数据框中。以下是示例代码:
import pandas as pd
# 创建示例数据框和数据框列表
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df_list = [pd.DataFrame({'C': [7, 8, 9], 'D': [10, 11, 12]}),
pd.DataFrame({'E': [13, 14, 15], 'F': [16, 17, 18]})]
# 将数据框列表作为一列拼接到数据框中
df['G'] = df_list
# 显示拼接结果
print(df)
输出结果为:
A B G
0 1 4 C D
0 7 10
1 8 11
2 9 12, E F
0 13 16
1 14 17
2 15 18
其中,我们将数据框列表 df_list
作为一列拼接到数据框 df
中,得到一个新的数据框。注意,这里拼接后的列是一个带有多个数据框的 Series,这是因为在 Pandas 中,数据框实际上是由多个 Series 按列拼接得到的。如果我们需要将其拆分成多个列,可以使用 apply
函数和 pd.Series
构造器。以下是示例代码:
import pandas as pd
# 创建示例数据框和数据框列表
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df_list = [pd.DataFrame({'C': [7, 8, 9], 'D': [10, 11, 12]}),
pd.DataFrame({'E': [13, 14, 15], 'F': [16, 17, 18]})]
# 将数据框列表作为一列拼接到数据框中,并拆分成多个列
df[['G', 'H']] = df['G'].apply(pd.Series)
# 显示拼接结果
print(df)
输出结果为:
A B G H
0 1 4 7 10
1 2 5 8 11
2 3 6 9 12