geekdoc-python-zh/docs/py4b/insert-new-column-into-a-da...

4.3 KiB

用 Python 在数据帧中插入新列

原文:https://www.pythonforbeginners.com/basics/insert-new-column-into-a-dataframe-in-python

在 python 中,数据帧通常用于处理表格数据。在本文中,我们将讨论如何在 python 中向数据帧中插入新列。

在 Python 中通过索引将新列插入数据帧

要在 dataframe 中添加新列,我们可以像在 python 字典中添加键值对一样使用索引。在这种方法中,我们首先将需要插入的列的所有元素放入一个列表中。之后,我们将使用下面的语法把这个列表作为一个新列添加到 dataframe 中。

datframe_name[column_name]= element_lis t

这里,

  • datframe_name是要插入列的数据帧的名称。
  • column_name表示包含新列名称的字符串。
  • element_list表示包含将被插入数据帧的元素的列表。

以下是通过索引将新列插入数据帧的 python 源代码。

import pandas as pd

df = pd.read_csv('Demo.csv')
print("The dataframe before inserting the column:")
print(df)
column_data = [180, 164, 170]
df['Height'] = column_data
print("The dataframe after inserting the column:")
print(df) 

输出:

The dataframe before inserting the column:
   Roll    Name Language
0     1  Aditya   Python
1     2     Sam     Java
2     3   Chris      C++
The dataframe after inserting the column:
   Roll    Name Language  Height
0     1  Aditya   Python     180
1     2     Sam     Java     164
2     3   Chris      C++     170

使用 assign()方法将新列插入数据帧

不使用索引,我们可以使用assign()方法向数据帧中添加一个新列。在 dataframe 上调用assign()方法时,使用以下语法将列名和新列的元素列表作为关键字参数。

datframe_name.assign(column_name= element_list)

这里,

  • datframe_name是要插入列的数据帧的名称。
  • column_name表示新列的名称。
  • element_list是包含将被插入数据帧的元素的列表。

执行后,assign()方法将列插入到数据帧中,并返回更新后的数据帧,如下所示。

import pandas as pd

df = pd.read_csv('Demo.csv')
print("The dataframe before inserting the column:")
print(df)
column_data = [180, 164, 170]
df = df.assign(Height=column_data)
print("The dataframe after inserting the column:")
print(df)

输出:

The dataframe before inserting the column:
   Roll    Name Language
0     1  Aditya   Python
1     2     Sam     Java
2     3   Chris      C++
The dataframe after inserting the column:
   Roll    Name Language  Height
0     1  Aditya   Python     180
1     2     Sam     Java     164
2     3   Chris      C++     170 

上述方法用于在末尾插入新列。我们还可以在数据帧的任何位置插入新列。为此,我们可以使用 insert()方法。

使用 Insert()方法将新列插入数据帧

使用 insert()方法,我们可以在数据帧中的任何位置插入一个新列。在 dataframe 上调用insert()方法时,该方法将新列插入的位置作为其第一个输入参数,新列的名称作为第二个输入参数,包含新列元素的列表作为第三个输入参数。执行后,它在 dataframe 中的指定位置插入列。您可以在下面的示例中观察到这一点。

import pandas as pd

df = pd.read_csv('Demo.csv')
print("The dataframe before inserting the column:")
print(df)
column_data = [180, 164, 170]
df.insert(1, 'Height', column_data)
print("The dataframe after inserting the column:")
print(df)

输出:

The dataframe before inserting the column:
   Roll    Name Language
0     1  Aditya   Python
1     2     Sam     Java
2     3   Chris      C++
The dataframe after inserting the column:
   Roll  Height    Name Language
0     1     180  Aditya   Python
1     2     164     Sam     Java
2     3     170   Chris      C++

结论

在本文中,我们讨论了在 python 中向数据帧中插入新列的三种方法。想了解更多关于 python 编程的知识,可以阅读这篇关于 python 中列表理解的文章。你可能也会喜欢这篇关于 python 中的字典理解的文章。