Python dataframe如何設置index

dataframe設置index

DataFrame.set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False) 

其中:keys是列標簽或數組列表

  • drop:刪除要用作新索引的列,佈爾值默認為True
  • append:boolean是否將列附加到現有索引默認為False,inplace修改DataFrame(不要創建新對象)默認為False
  • verify_integrity:檢查新索引是否有重復項默認為False。

示例:

In [ ]: df = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
	              	  	  'B': ['B0', 'B1', 'B2', 'B3'],
	              		  'C': ['C0', 'C1', 'C2', 'C3'],
	              		  'D': ['D0', 'D1', 'D2', 'D3']},
	              		   index=[0, 1, 2, 3])
	              		  
Out[ ]: 
	A	B	C	D
0	A0	B0	C0	D0
1	A1	B1	C1	D1
2	A2	B2	C2	D2
3	A3	B3	C3	D3
>>> df1= df.set_index(['A', 'B'])
>>> df2 = df.set_index([[1, 2, 3,4]])
DataFrame.reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill='')

level指僅從索引中刪除給定的級別,默認情況下刪除所有級別int,str,tuple或list,默認為None。drop確定索引列會是否還原為普通列

示例:

>>> df.reset_index()

重命名dataframe的index 

方法1:直接賦值法

因為dataframe的index也是series格式的數據,所以直接指定index為一個新的series即可修改dataframe的index:

方法2:map

方法3:rename

通過rename傳入一個函數可以批量替換index或rename:

也可以通過傳入一個字典,指定修改index或column:

自定義map函數處理dataframe

map函數通過傳入一個函數來對對象進行批量處理:

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持LevelAH。

推薦閱讀: