• Pandas:DataFrame数据的更改、插入新增的列和行


    一、更改DataFrame的某些值

    1、更改DataFrame中的数据,原理是将这部分数据提取出来,重新赋值为新的数据。

    2、需要注意的是,数据更改直接针对DataFrame原数据更改,操作无法撤销,如果做出更改,需要对更改条件做确认或对数据进行备份。

    代码:

    import pandas as pd
    df1 = pd.DataFrame([['Snow','M',22],['Tyrion','M',32],['Sansa','F',18],['Arya','F',14]], columns=['name','gender','age'])
    
    print("--------更换单个值----------")
    # loc和iloc 可以更换单行、单列、多行、多列的值
    df1.loc[0,'age']=25      # 思路:先用loc找到要更改的值,再用赋值(=)的方法实现更换值
    df1.iloc[0,2]=25         # iloc:用索引位置来查找
    
    # at 、iat只能更换单个值
    df1.at[0,'age']=25      # iat 用来取某个单值,参数只能用数字索引
    df1.iat[0,2]=25         # at 用来取某个单值,参数只能用index和columns索引名称
    print(df1)

    结果图:

     

    二、插入新增列、行

    代码:

    import pandas as pd
    
    df1 = pd.DataFrame([['Snow','M',22],['Tyrion','M',32],['Sansa','F',18],['Arya','F',14]], columns=['name','gender','age'])
    
    print("----------在最后新增一列---------------")
    print("-------案例1----------")
    # 在数据框最后加上score一列,元素值分别为:80,98,67,90
    df1['score']=[80,98,67,90]   # 增加列的元素个数要跟原数据列的个数一样
    print(df1)
    
    print("-------案例2----------")
    print("---------在指定位置新增列:用insert()--------")
    # 在gender后面加一列城市
    # 在具体某个位置插入一列可以用insert的方法
    # 语法格式:列表.insert(index, obj)
    # index --->对象 obj 需要插入的索引位置。
    # obj ---> 要插入列表中的对象(列名)
    
    col_name=df1.columns.tolist()                   # 将数据框的列名全部提取出来存放在列表里
    print(col_name)
    
    col_name.insert(2,'city')                      # 在列索引为2的位置插入一列,列名为:city,刚插入时不会有值,整列都是NaN
    df1=df1.reindex(columns=col_name)              # DataFrame.reindex() 对原行/列索引重新构建索引值
    
    df1['city']=['北京','山西','湖北','澳门']   # 给city列赋值
    print(df1)
    
    print("----------新增行---------------")
    # 重要!!先创建一个DataFrame,用来增加进数据框的最后一行
    new=pd.DataFrame({'name':'lisa',
                      'gender':'F',
                      'city':'北京',
                      'age':19,
                      'score':100},
                     index=[1])   # 自定义索引为:1 ,这里也可以不设置index
    print(new)
    
    print("-------在原数据框df1最后一行新增一行,用append方法------------")
    df1=df1.append(new,ignore_index=True)   # ignore_index=True,表示不按原来的索引,从0开始自动递增
    print(df1)

    结果图:

     

     

  • 相关阅读:
    从零开始搭建Wpf基础9-使用MaterialDesignToolkit对界面进行美化下
    从零开始搭建Wpf基础8-登录界面成功后显示主窗体
    从零开始搭建Wpf基础7-Api数据接入
    从零开始搭建Wpf基础6-Tab选项卡MVVM实现
    Wpf下dragablz使用Prism8进行导航-3
    从零开始搭建Wpf基础5-无限级菜单MVVM实现
    从零开始搭建Wpf基础篇4-使用Prism进行模块化
    从零开始搭建Wpf初学篇3-界面模块化
    手写es5和es6实现原型继承
    判断类型(通用类型检测方法)和手写深拷贝
  • 原文地址:https://www.cnblogs.com/wodexk/p/10316793.html
Copyright © 2020-2023  润新知