簡體   English   中英

如何控制從熊貓df.reset_index()兩次獲取的索引的標頭標題

[英]How to control the header's title of index obtained from pandas df.reset_index() twice

我在代碼中兩次執行df.reset_index() 第一次重置為我提供了帶有“索引”作為標題的新列。 我可以改變這個嗎?

aaa = df.reset_index().melt(['prot', iso_head,'index'], mz_header)

           prot    isoab0  index   variable       value
39   ALBU_HUMAN  0.508396     39  [M+2H+]2+  593.284410
669  ALBU_HUMAN  0.508396     39  [M+3H+]3+  395.858700
670  ALBU_HUMAN  0.504033     40  [M+3H+]3+  399.201120

因為當我第二輪(在.dropna()之后df.reset_index()執行df.reset_index()時,第一列的實際索引更改為在'level_0'列中。 “索引”列仍然如上。 新的重置索引列位於第一列。 這非常令人困惑。 為什么這次.reset_index()沒有像第一輪一樣給我提供標題為“ index”的新列? 什么是管理多個索引列的好方法? 丟掉其中的一些好嗎?

aaa = aaa.dropna().sort_values('index')
aaa = aaa.reset_index()

    level_0        prot    isoab0  index   variable       value
50       39  ALBU_HUMAN  0.508396     39  [M+2H+]2+  593.284410
51      669  ALBU_HUMAN  0.508396     39  [M+3H+]3+  395.858700
52      670  ALBU_HUMAN  0.504033     40  [M+3H+]3+  399.201120

那就是因為您已經有一個名為index的列,如果您想要一個備用名稱,可以在重新索引之前使用rename_axis,即

df.rename_axis('INDEX').reset_index()

還可以使用.name設置索引名稱,即(感謝@coldspeed):

df.index.name = 'INDEX'
df.reset_index()

   INDEX        prot    isoab0  index   variable      value
0     39  ALBU_HUMAN  0.508396     39  [M+2H+]2+  593.28441
1    669  ALBU_HUMAN  0.508396     39  [M+3H+]3+  395.85870
2    670  ALBU_HUMAN  0.504033     40  [M+3H+]3+  399.20112

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM