zoukankan      html  css  js  c++  java
  • Pandas —— (3)数据查看、转置、添加、修改、删除、运算(对齐)、排序

    @

    一、数据查看、转置

    # 数据查看、转置
    
    df = pd.DataFrame(np.random.rand(16).reshape(8,2)*100,
                       columns = ['a','b'])
    print(df.head(2))# .head()查看头部数据
    print(df.tail())# .tail()查看尾部数据
    # 不输入参数,默认查看5条
    
    # .T 转置
    print(df.T)
    

    二、添加与修改

    df = pd.DataFrame(np.random.rand(16).reshape(4,4)*100,
                       columns = ['a','b','c','d'])
    
    # 新增列/行并赋值
    df['e'] = 10
    df.loc[4] = 20 #iloc不能用于增加
    
    # 索引后直接修改值
    df['e'] = 20
    df[['a','c']] = 100
    
    

    三、删除 del / drop()

    
    df = pd.DataFrame(np.random.rand(16).reshape(4,4)*100,
                       columns = ['a','b','c','d'])
    
    # del语句 - 删除列
    del df['a']
    
    # drop()删除行,默认:inplace=False → 删除后生成新的数据,不改变原数据
    print(df.drop(0)) # !!!这里的数字0是index的名字而不是序号
    print(df.drop([1,2]))
    
    # drop()删除列,需要加上axis = 1,默认:inplace=False → 删除后生成新的数据,不改变原数据
    print(df.drop(['d'], axis = 1))
    print(df)
    
    

    四、基本运算,自动对齐

    DataFrame对象之间进行运算时,数据自动按照列和索引(行标签)对齐。只要有一个DataFrame对象对应位置为NaN,怎运算完的对应位置也为NaN

    df1 = pd.DataFrame(np.random.randn(10, 4), columns=['A', 'B', 'C', 'D'])
    df2 = pd.DataFrame(np.random.randn(7, 3), columns=['A', 'B', 'C'])
    print(df1 + df2)
    

    在这里插入图片描述

    五、排序

    和Excel的排序规则是一致的

    5.1 按值(列)排序 .sort_values

    # 同样适用于Series
    
    df1 = pd.DataFrame(np.random.rand(16).reshape(4,4)*100,
                       columns = ['a','b','c','d'])
    print(df1)
    # 单列排序
    # ascending参数:设置升序降序,默认升序
    print(df1.sort_values(['a'], ascending = True))  # 升序
    print(df1.sort_values(['a'], ascending = False))  # 降序
    print('------')
    
    
    # 多列排序,按列顺序排序,先排前面的再排后面的
    df2 = pd.DataFrame({'a':[1,1,1,1,2,2,2,2],
                      'b':list(range(8)),
                      'c':list(range(8,0,-1))})
    print(df2)
    print(df2.sort_values(['a','c']))
    # 注意默认inplace=False
    

    5.2 按索引(行)排序 .sort_index

    df1 = pd.DataFrame(np.random.rand(16).reshape(4,4)*100,
                      index = [5,4,3,2],
                       columns = ['a','b','c','d'])
    df2 = pd.DataFrame(np.random.rand(16).reshape(4,4)*100,
                      index = ['h','s','x','g'],
                       columns = ['a','b','c','d'])
    print(df1)
    print(df1.sort_index())
    print(df2)
    print(df2.sort_index())
    

    打赏

    码字不易,如果对您有帮助,就打赏一下吧O(∩_∩)O

  • 相关阅读:
    【REACT HOOKS】useState是如何保存并更新数据的?
    CSS Modules 使用
    【TS】一些常用的工具类型
    【TS】type和interface的区别
    【TS】unknown类型
    判断虚拟导航栏(NavigationBar)是否显示
    本地的FTP服务器
    Cocos2d-x3.3RC0的Android编译Activity启动流程分析
    Eclipse/MyEclipse 最最常用的快捷键
    anroidstudio log
  • 原文地址:https://www.cnblogs.com/long5683/p/13158379.html
Copyright © 2011-2022 走看看