📅  最后修改于: 2023-12-03 15:07:45.197000             🧑  作者: Mango
在 Pandas DataFrame 中,可以很方便地在末尾或开头添加一列。但是,如果我们需要在 DataFrame 的特定位置添加一列呢?本文将介绍如何在特定位置插入给定列。
可以使用 DataFrame 类的 insert() 方法,在指定位置添加一列。 insert() 方法的语法如下所示:
DataFrame.insert(loc, column, value, allow_duplicates=False)
参数说明:
下面是一个具体的示例,该示例向 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() 方法可以沿着一条轴将多个 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 中的特定位置插入给定列。