[英]Difference between pandas functions: df.assign() vs 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.