📌  相关文章
📜  pandas 数据框列表作为列 - Python (1)

📅  最后修改于: 2023-12-03 15:18:15.031000             🧑  作者: Mango

Pandas 数据框列表作为列 - Python

在 Pandas 中,我们经常需要将多个数据框按列拼接起来。一种实用的方法是将这些数据框放在一个列表中,然后使用 concat 函数将它们拼接在一起。

将多个数据框按列拼接

假设我们有三个数据框 df1df2df3,它们具有相同的行索引。现在我们要将它们按列拼接起来,得到一个新的数据框。以下是示例代码:

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