如何在现有的 Pandas DataFrame 中添加一行?

pythonpandasserver side programmingprogramming

在使用 Python 中的 pandas 处理数据时,向现有的 pandas Dataframe 添加新行(可以是一行或多行)是一项常见任务,可以使用各种 pandas 方法执行。Pandas 是 Python 中流行的数据处理库,它为数据分析提供了多种功能。在本文中,我们将讨论如何使用不同的方法在 Python 中现有的 pandas 数据框中添加一行。

如何在现有的 Pandas 数据框中添加一行?

在 pandas 数据框中添加新行之前,让我们首先在 Python 中创建一个示例 Pandas Dataframe,我们将在整篇文章中使用它。我们将创建一个包含三列的 Pandas DataFrame:"姓名"、"性别"和"年龄"。下面是在 Python 中创建 Pandas Dataframe 的程序 -

示例

import pandas as pd

data = {
   "Name": ["Jane", "Martin", "Baskin"],
   "Gender": ["Female", "Male", "Male"],
   "Age": [20, 34, 32]
}

df = pd.DataFrame(data)
print(df)

输出

    Name   Gender   Age
0  Jane    Female   20
1  Martin  Male     34
2  Baskin  Male     32

现在我们将讨论可用于在 Python 中向现有 Pandas 数据框添加一行的各种方法。

方法 1:使用 append() 方法

使用 append() 方法是向 Pandas 数据框添加新行的最简单方法之一。此方法将新行附加到现有数据框。以下是如何将此方法与现有数据框一起使用的示例 -

示例

import pandas as pd

data = {
    "Name": ["Jane", "Martin", "Baskin"],
    "Gender": ["Female", "Male", "Male"],
     "Age": [20, 34, 32]
}

df = pd.DataFrame(data)

new_r = {"Name": "Alicia", "Gender": "Female", "Age": 30}
df = df.append(new_r, ignore_index=True)
print(df)

输出

    Name  Gender  Age
0    Jane  Female   20
1  Martin    Male   34
2  Baskin    Male   32
3  Alicia  Female   30

在上面的程序中,我们创建了一个名为 new_row 的新字典,其中包含我们想要添加到现有数据框的新行的值。然后,我们使用 append() 函数将新行添加到现有数据框。ignore_index=True 参数用于在添加新行后重置数据框的索引。

方法 2:使用 loc[] 方法

向 Pandas DataFrame 添加新行的另一种方法是使用 loc[] 方法。此方法允许我们选择数据框中的特定位置并在该位置添加新行。下面给出了一个如何使用 loc[] 方法在 Pandas DataFrame 末尾添加新行的示例 -

示例

import pandas as pd
	
d= {
    "Name": ["Jane", "Martin", "Baskin"],
    "Gender": ["Female", "Male", "Male"],
     "Age": [20, 34, 32]
}

df = pd.DataFrame(d)

new_r = {"Name": "Alice", "Gender": "Female", "Age": 27}
df.loc[len(df)] = new_r
print(df)

输出

     Name  Gender  Age
0    Jane  Female   20
1  Martin    Male   34
2  Baskin    Male   32
3   Alice  Female   27

在上面的代码中,我们使用了 pandas 的 len(df) 方法获取 DataFrame 中最后一行的索引,并加一以获取新行的索引。之后,我们使用 loc[] 方法将新行添加到现有 DataFrame 的末尾。

在 Python 中向现有 DataFrame 添加多行

如果我们想向现有 Pandas DataFrame 添加多行,我们可以创建一个包含新行的新 DataFrame,我们将使用 concat() 方法将新数据框连接到现有数据框。下面是执行相同操作的示例 −

示例

import pandas as pd

d= {
    "Name": ["Jane", "Martin", "Baskin"],
    "Gender": ["Female", "Male", "Male"],
     "Age": [20, 34, 32]
}

df = pd.DataFrame(d)

new_d = {
    'Name': ['Alaska', 'David'],
    'Age': [28, 33],
    'Gender': ['female', 'Male']
}

new_df = pd.DataFrame(new_d)
df = pd.concat([df, new_df], ignore_index=True)
print(df)

输出

    Name  Gender  Age
0    Jane  Female   20
1  Martin    Male   34
2  Baskin    Male   32
3  Alaska  female   28
4   David    Male   33

在上面的程序中,我们创建了一个新的 DataFrame,其中包含我们想要添加到现有 DataFrame 的新行。之后,我们使用 Python 的 Pandas 库的 concat() 方法将新数据框连接到我们已经创建的现有数据框。ignore_index=True 参数或参数用于在将新数据框连接到现有数据框后重置数据框的索引。

结论

总之,我们使用了 pandas 的三个不同函数在现有的 Pandas Dataframe 中添加一行。我们使用 concat() 方法、loc[] 方法和 append() 函数将一行添加到使用 Python 库 Panads 创建的现有数据框中。


相关文章