美文网首页
Python Pandas 向DataFrame中的特定位置添加

Python Pandas 向DataFrame中的特定位置添加

作者: 王叽叽的小心情 | 来源:发表于2020-08-19 16:48 被阅读0次

    在Pandas的DataFrame中的特定位置添加一行,比如在首行插入一行,或者是中间行的情况,因为append()函数默认是添加在最后一行的。

    特定行插入的主要思想是新增一列,按照新列设置的顺序进行排序即可,操作过程如下:

    # 目的:在构造的dataframe中的第二行添加一行数据
    # 构建一个dataframe
    df = pd.DataFrame(columns=['name','number'], data=[['cat',3], ['dog',2],['pig',1]])
    df
      name  number
    0  cat       3
    1  dog       2
    2  pig       1
    # 插入一行,随便设置索引,比如按照字符串作为索引
    df.loc['new'] = ['duck', 10]
    df
         name  number
    0     cat       3
    1     dog       2
    2     pig       1
    new  duck      10
    # 此时需要把最后一行安排到第二行去,方法是新增一列指明他们的顺序
    df['order'] = [1, 3, 4, 2]  # 所以这个顺序列表很重要
    # 此时的df为
    df
         name  number  order
    0     cat       3      1
    1     dog       2      3
    2     pig       1      4
    new  duck      10      2
    # 按照order字段进行排序
    df = df.sort_values(by='order')
    df
         name  number  order
    0     cat       3      1
    new  duck      10      2
    1     dog       2      3
    2     pig       1      4
    # 再接下来是重新设置索引
    df = df.reset_index()
    df
      index  name  number  order
    0     0   cat       3      1
    1   new  duck      10      2
    2     1   dog       2      3
    3     2   pig       1      4
    # 最后删除多余的列
    df.drop(columns=['index','order'],inplace=True)
    df
       name  number
    0   cat       3
    1  duck      10
    2   dog       2
    3   pig       1
    #  新增的duck就插入到第二行了
    

    小结: 虽然有点曲线救国,但思想比较简单,总之就是新增一列指定好的顺序,按照新增列的顺序重新排列即可。在正式计算中,难点将转变为对列表中的特定位置进行插入,如文中手动定义的df['order'] = [1, 3, 4, 2]的列表。以后再进行这个基础操作的学习吧。

    相关文章

      网友评论

          本文标题:Python Pandas 向DataFrame中的特定位置添加

          本文链接:https://www.haomeiwen.com/subject/gucdjktx.html