暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

在 DataFrame 中添加行的三种方法

程序员学长 2022-09-07
5198

大家好,我是小寒。

今天来分享三种在 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"]

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

最后

今天简单介绍了一个如何在dataframe中添加行。

接下来我们会分享更多的 「深度学习案例以及python相关的技术」,欢迎大家关注。

最后,最近新建了一个 python 学习交流群,会时不时的分享 「python相关学习资料,也可以问问题,非常棒的一个群」

「进群方式:加我微信,备注 “python”」


文章转载自程序员学长,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论