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:\Users\111\Desktop')

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 設置


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM