Pandas之DataFrame對(duì)象的列和索引之間的轉(zhuǎn)化
約定:
import pandas as pd
DataFrame對(duì)象的列和索引之間的轉(zhuǎn)化
我們常常需要將DataFrame對(duì)象中的某列或某幾列作為索引,或者將索引轉(zhuǎn)化為對(duì)象的列。pandas提供了set_index()/reset_index() 來(lái)供我們使用。
一、列轉(zhuǎn)化為索引
df1=pd.DataFrame({'X':range(5),'Y':range(5),'S':list("aaabb"),'Z':[1,1,2,2,2]})
df1
代碼結(jié)果:
| S | X | Y | Z | |
|---|---|---|---|---|
| 0 | a | 0 | 0 | 1 |
| 1 | a | 1 | 1 | 1 |
| 2 | a | 2 | 2 | 2 |
| 3 | b | 3 | 3 | 2 |
| 4 | b | 4 | 4 | 2 |
指定列為索引
df1.set_index('S')
代碼結(jié)果:
| X | Y | Z | |
|---|---|---|---|
| S | |||
| a | 0 | 0 | 1 |
| a | 1 | 1 | 1 |
| a | 2 | 2 | 2 |
| b | 3 | 3 | 2 |
| b | 4 | 4 | 2 |
指定多個(gè)列作為多級(jí)索引
df1.set_index(['S','Z'])
代碼結(jié)果:
| X | Y | ||
|---|---|---|---|
| S | Z | ||
| a | 1 | 0 | 0 |
| 1 | 1 | 1 | |
| 2 | 2 | 2 | |
| b | 2 | 3 | 3 |
| 2 | 4 | 4 |
同時(shí)保留作為索引的列
df1.set_index(['S','Z'],drop=False)
代碼結(jié)果:
| S | X | Y | Z | ||
|---|---|---|---|---|---|
| S | Z | ||||
| a | 1 | a | 0 | 0 | 1 |
| 1 | a | 1 | 1 | 1 | |
| 2 | a | 2 | 2 | 2 | |
| b | 2 | b | 3 | 3 | 2 |
| 2 | b | 4 | 4 | 2 |
二、索引轉(zhuǎn)化為列
df2=df1.set_index(['S','Z']) df2
代碼結(jié)果:
| X | Y | ||
|---|---|---|---|
| S | Z | ||
| a | 1 | 0 | 0 |
| 1 | 1 | 1 | |
| 2 | 2 | 2 | |
| b | 2 | 3 | 3 |
| 2 | 4 | 4 |
將單個(gè)索引作為DataFrame對(duì)象的列
df2.reset_index('Z')
代碼結(jié)果:
| Z | X | Y | |
|---|---|---|---|
| S | |||
| a | 1 | 0 | 0 |
| a | 1 | 1 | 1 |
| a | 2 | 2 | 2 |
| b | 2 | 3 | 3 |
| b | 2 | 4 | 4 |
將多級(jí)索引作為列
df2.reset_index()
代碼結(jié)果:
| S | Z | X | Y | |
|---|---|---|---|---|
| 0 | a | 1 | 0 | 0 |
| 1 | a | 1 | 1 | 1 |
| 2 | a | 2 | 2 | 2 |
| 3 | b | 2 | 3 | 3 |
| 4 | b | 2 | 4 | 4 |
直接刪除對(duì)指定索引
df2.reset_index('Z',drop=True)
代碼結(jié)果:
| X | Y | |
|---|---|---|
| S | ||
| a | 0 | 0 |
| a | 1 | 1 |
| a | 2 | 2 |
| b | 3 | 3 |
| b | 4 | 4 |
直接對(duì)原DataFrame對(duì)象修改
df2.reset_index(inplace=True) df2
代碼結(jié)果:
| S | Z | X | Y | |
|---|---|---|---|---|
| 0 | a | 1 | 0 | 0 |
| 1 | a | 1 | 1 | 1 |
| 2 | a | 2 | 2 | 2 |
| 3 | b | 2 | 3 | 3 |
| 4 | b | 2 | 4 | 4 |
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python開(kāi)發(fā)的單詞頻率統(tǒng)計(jì)工具wordsworth使用方法
wordsworth是字母,單詞和n元組頻率分析,用來(lái)分析文件中的單詞出現(xiàn)頻率的工具。2014-06-06
Python編程異步爬蟲(chóng)之a(chǎn)iohttp模塊的基本用法
aiohttp?模塊是一個(gè)基于?asyncio?的?HTTP?客戶端和服務(wù)器框架,可以用于異步處理?HTTP?請(qǐng)求和響應(yīng),這篇文章給大家介紹Python編程異步爬蟲(chóng)之a(chǎn)iohttp模塊的基本用法,感興趣的朋友一起看看吧2024-03-03
Python tkinter庫(kù)繪制春聯(lián)和福字的示例詳解
馬上要過(guò)年了,這篇文章將用到Python中的tkinter庫(kù)來(lái)寫(xiě)一副春聯(lián)&福字送給大家。文中的實(shí)現(xiàn)方法講解詳細(xì),感興趣的小伙伴可以試一試2022-01-01
Python中函數(shù)帶括號(hào)和不帶括號(hào)的區(qū)別及說(shuō)明
這篇文章主要介紹了Python中函數(shù)帶括號(hào)和不帶括號(hào)的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
解決Django 在ForeignKey中出現(xiàn) non-nullable field錯(cuò)誤的問(wèn)題
今天小編就為大家分享一篇解決Django 在ForeignKey中出現(xiàn) non-nullable field錯(cuò)誤的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08
使用PyTorch將數(shù)據(jù)從CPU移動(dòng)到GPU的四個(gè)方法
這篇文章給大家介紹了在 PyTorch 中,將數(shù)據(jù)從 CPU 移動(dòng)到 GPU 的幾種方法,使用 .to() 方法,使用 .cuda() 方法,使用 torch.Tensor 構(gòu)造函數(shù)和使用 torch.tensor 構(gòu)造函數(shù)這四個(gè)方法,通過(guò)代碼示例介紹非常詳細(xì),需要的朋友可以參考下2024-01-01
python實(shí)現(xiàn)WebSocket服務(wù)端過(guò)程解析
這篇文章主要介紹了python實(shí)現(xiàn)WebSocket服務(wù)端過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10

