📌  相关文章
📜  在 Pandas DataFrame 中的特定位置插入给定列(1)

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

在 Pandas DataFrame 中的特定位置插入给定列

在 Pandas DataFrame 中,可以很方便地在末尾或开头添加一列。但是,如果我们需要在 DataFrame 的特定位置添加一列呢?本文将介绍如何在特定位置插入给定列。

方法一:使用 insert() 方法

可以使用 DataFrame 类的 insert() 方法,在指定位置添加一列。 insert() 方法的语法如下所示:

DataFrame.insert(loc, column, value, allow_duplicates=False)

参数说明:

  • loc:int。要插入新列的位置。在 loc 后面的所有列都将向右移动。
  • column:str。要插入的新列的名称。
  • value:scalar、array-like、Series 或 DataFrame。新列的数据。
  • allow_duplicates:bool。如果是 True,则允许插入重复列名。

下面是一个具体的示例,该示例向 DataFrame 的第二列添加了一列新数据:

import pandas as pd

data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
print("插入前:")
print(df)

new_col = ['a', 'b', 'c']
col_name = 'NewColumn'
idx = 1

df.insert(loc=idx, column=col_name, value=new_col)

print("\n插入后:")
print(df)

输出结果为:

插入前:
   A  B  C
0  1  4  7
1  2  5  8
2  3  6  9

插入后:
   A NewColumn  B  C
0  1         a  4  7
1  2         b  5  8
2  3         c  6  9
方法二:使用 concat() 方法

还可以使用 concat() 方法在特定位置添加一列。concat() 方法可以沿着一条轴将多个 DataFrame 连接起来。我们可以通过连接两个 DataFrame,然后指定列的顺序来实现在 DataFrame 中的特定位置添加列。

下面是一个具体的示例,该示例向 DataFrame 的第二列添加了一列新数据:

import pandas as pd

data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
print("插入前:")
print(df)

new_col = pd.Series(['a', 'b', 'c'], name='NewColumn')
idx = 1

df = pd.concat([df.iloc[:, :idx], new_col, df.iloc[:, idx:]], axis=1)

print("\n插入后:")
print(df)

输出结果为:

插入前:
   A  B  C
0  1  4  7
1  2  5  8
2  3  6  9

插入后:
   A NewColumn  B  C
0  1         a  4  7
1  2         b  5  8
2  3         c  6  9
结论

以上是在 Pandas DataFrame 中插入给定列的两种方法。可以使用 DataFrame 类的 insert() 方法或 concat() 方法在指定位置添加一列。无论哪种方法,都可以实现在 DataFrame 中的特定位置插入给定列。