在 DataFrame 中添加行的三种方法

173 阅读2分钟

我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第1篇文章,点击查看活动详情

大家好,我是小寒。

原文链接

今天我们来分享三种在 pandas dataframe 中添加行的方法。

方式一

通过在 pandas 的 DataFrame() 方法中传入一个字典形式的数据,来创建一个 dataframe。

import pandas as pd
data1 = pd.DataFrame(
    {
        "ID": [15, 16, 17, 18, 19],
        "Name": ["Abid", "Matthew", "Nisha", "Natassha", "Nahla"],
        "CGPA": [2.3, 3.0, 3.9, 2.5, 3.2],
        "Dept": ["EEE", "IT", "CS", "BA", "LAW"],
        "Region": ["Islamabad", "Ontario", "London", "Saba", "Denver"],
    }
)

print(data1)

它包括五行五列

   ID      Name  CGPA Dept     Region
0  15      Abid   2.3  EEE  Islamabad
1  16   Matthew   3.0   IT    Ontario
2  17     Nisha   3.9   CS     London
3  18  Natassha   2.5   BA       Saba
4  19     Nahla   3.2  LAW     Denver

我们可以通过 pandas Series 的形式来添加行。

要将 Series 添加到 dataframe,通过调用 dataframe 的 append() 方法。

row1 = pd.Series([25, 'Franc', 3.3, 'CS', 'Paris'], index=data1.columns)
data1 = data1.append(row1,ignore_index=True) 
data1

其中 ignore_index 被设置为 True,代表结果索引将被标记为 0,1,…,n-1.

   ID      Name  CGPA Dept     Region
0  15      Abid   2.3  EEE  Islamabad
1  16   Matthew   3.0   IT    Ontario
2  17     Nisha   3.9   CS     London
3  18  Natassha   2.5   BA       Saba
4  19     Nahla   3.2  LAW     Denver
5  25     Franc   3.3   CS      Paris

类似地,我们还可以添加一个 dataframe。

这里我们创建了一个名为 data2 的 dataframe,并使用 .append() 方法将多行添加到 data1 中。

data2 = pd.DataFrame(
    {
        "ID": [78, 88, 98],
        "Name": ["Nick", "Stan", "Ludwig"],
        "CGPA": [2.3, 2.5, 3.2],
        "Dept": ["EEE", "BA", "LAW"],
        "Region": ["Puerto Rico", "Miami", "Malmo"],
    }
)

data1=data1.append(data2,ignore_index=True)
print(data1)
   ID      Name  CGPA Dept       Region
0  15      Abid   2.3  EEE    Islamabad
1  16   Matthew   3.0   IT      Ontario
2  17     Nisha   3.9   CS       London
3  18  Natassha   2.5   BA         Saba
4  19     Nahla   3.2  LAW       Denver
5  78      Nick   2.3  EEE  Puerto Rico
6  88      Stan   2.5   BA        Miami
7  98    Ludwig   3.2  LAW        Malmo

方法二

第二种方法非常简单。我们可以创建一个字典并通过 apped() 方法来添加到 dataframe 中。

row2 = {
    "ID": 105,
    "Name": "Nana",
    "CGPA": 3.1,
    "Dept": "IT",
    "Region": "Tokyo",
}

data1 = data1.append(row2, ignore_index=True)
print(data1)
    ID      Name  CGPA Dept     Region
0   15      Abid   2.3  EEE  Islamabad
1   16   Matthew   3.0   IT    Ontario
2   17     Nisha   3.9   CS     London
3   18  Natassha   2.5   BA       Saba
4   19     Nahla   3.2  LAW     Denver
5  105      Nana   3.1   IT      Tokyo

方法三

第三种方法是将行添加到 dataframe 中的高效的方法。

要连接两个 dataframe 或 Series,我们将使用 pandas 的 concat() 函数。

它提供了高级功能,例如使用内部或外部联接添加列。

在本例中,我们使用数组创建了第三个 dataframe data3。

我们沿着0轴连接 data1 和 data3。这意味着我们在追加行,而不是列。

data3 = pd.DataFrame(
    [[126, "Floki",2.5,"BA","Copenhagen" ],
    [188, "Lee",2.5,"LAW", "Miami"]],
    columns=data1.columns
)

data1=pd.concat([data1,data3],axis=0)
print(data1)
   ID      Name  CGPA Dept      Region
0   15      Abid   2.3  EEE   Islamabad
1   16   Matthew   3.0   IT     Ontario
2   17     Nisha   3.9   CS      London
3   18  Natassha   2.5   BA        Saba
4   19     Nahla   3.2  LAW      Denver
0  126     Floki   2.5   BA  Copenhagen
1  188       Lee   2.5  LAW       Miami

最后

我们也可以使用 .loc[<index_number>] 在 dataframe 的末尾添加行。

例如。

data1.loc[12] = [200, "Bala",2.4,"DS","Delhi"]

这是一种简单的方法,但并不适合,因为你必须跟踪索引号。