• Python学习笔记:索引index相关8个操作


    原始数据为 csv 文件。

    data
    '''
    date,temperature,humidity
    07/01/21,95,50
    07/02/21,94,55
    07/03/21,94,56
    '''
    

    一、读取时指定索引列

    默认索引从0开始,可通过 index_col 设置索引列。

    import os
    os.chdir(r'C:Users111Desktop')
    
    import pandas as pd
    import numpy as np
    
    # 指定时间索引
    data = pd.read_csv('data.csv', 
                       parse_dates=['date'], # 指定时间类型
                       index_col='date') 
    
    # 默认索引
    data2 = pd.read_csv('data.csv', 
                       parse_dates=['date']) # 指定时间类型
    

    二、使用现有 DataFrame 设置索引

    通过 set_index 手动设置索引。

    data2.set_index('date', inplace=True, drop=False)
    
    • set_index 方法重新创建对象
    • inplace=True 可就地修改原对象
    • drop=False 保留被设置索引的列

    三、操作之后重设索引 reset_index

    数据切片之后索引顺序混乱,可通过 reset_index 重新生成连续索引。

    data3 = pd.DataFrame(np.random.rand(5, 3), columns=list('ABC'))
    '''
               A         B         C team
    x1  0.490674  0.441180  0.061497    x
    x2  0.623639  0.467407  0.579566    x
    y1  0.442860  0.660843  0.688015    y
    y2  0.671548  0.833954  0.365685    y
    y3  0.755017  0.367738  0.801497    y
    '''
    data4 = data3[data3.index % 2 == 0]
    data4.reset_index(drop=True, inplace=True)
    
    • drop=True 不保留原索引
    • inplace=True 就地重置原对象

    四、分组 groupby 之后索引设置为列

    分组之后分组列默认作为索引index,可重置为列。

    # 添加列
    data3['team'] = ['x','x','y','y','y']
    
    # 分组之后重设索引
    data3.groupby('team').mean().reset_index()
    
    # 设置 as_index=False
    data3.groupby('team', as_index=False).mean()
    

    五、排序后重置索引

    sort_values 排序之后索引顺序混乱。

    data3.sort_values(by='A')
    data3.sort_values(by='A', ignore_index=True)
    

    六、删除重复后重置索引

    同排序后重设索引。

    data3.drop_duplicates('team', ignore_index=True)
    

    七、索引直接赋值

    可通过 index 直接赋值已有 dataframe

    better_index = ['x1','x2','y1','y2','y3']
    data3.index = better_index
    

    八、写入文件 to_csv 时忽略索引

    data3.to_csv('data3.csv', index=False)
    

    参考链接:好习惯!pandas 8 个常用的 index 设置

  • 相关阅读:
    ASP.Net User Controls as Static or Movable PopUps
    处理WinForm多线程程序时的陷阱(摘自网络)
    《颤抖吧,无证程序员们》只为娱乐
    Javascript和CSS浏览器兼容总结
    收藏的一个c#通讯编程的帖子很全
    WEB开发人员常用速查手册
    批量修改文件名称( 收藏的一个连接)
    SQL server常用操作
    开源网站大收藏
    pragma comment的使用
  • 原文地址:https://www.cnblogs.com/hider/p/15394286.html
Copyright © 2020-2023  润新知