Pandas之DataFrame對象的列和索引之間的轉化
約定:
import pandas as pd
DataFrame對象的列和索引之間的轉化
我們常常需要將DataFrame對象中的某列或某幾列作為索引,或者將索引轉化為對象的列。pandas提供了set_index()/reset_index() 來供我們使用。
一、列轉化為索引
df1=pd.DataFrame({'X':range(5),'Y':range(5),'S':list("aaabb"),'Z':[1,1,2,2,2]}) df1
代碼結果:
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')
代碼結果:
X | Y | Z | |
---|---|---|---|
S | |||
a | 0 | 0 | 1 |
a | 1 | 1 | 1 |
a | 2 | 2 | 2 |
b | 3 | 3 | 2 |
b | 4 | 4 | 2 |
指定多個列作為多級索引
df1.set_index(['S','Z'])
代碼結果:
X | Y | ||
---|---|---|---|
S | Z | ||
a | 1 | 0 | 0 |
1 | 1 | 1 | |
2 | 2 | 2 | |
b | 2 | 3 | 3 |
2 | 4 | 4 |
同時保留作為索引的列
df1.set_index(['S','Z'],drop=False)
代碼結果:
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 |
二、索引轉化為列
df2=df1.set_index(['S','Z']) df2
代碼結果:
X | Y | ||
---|---|---|---|
S | Z | ||
a | 1 | 0 | 0 |
1 | 1 | 1 | |
2 | 2 | 2 | |
b | 2 | 3 | 3 |
2 | 4 | 4 |
將單個索引作為DataFrame對象的列
df2.reset_index('Z')
代碼結果:
Z | X | Y | |
---|---|---|---|
S | |||
a | 1 | 0 | 0 |
a | 1 | 1 | 1 |
a | 2 | 2 | 2 |
b | 2 | 3 | 3 |
b | 2 | 4 | 4 |
將多級索引作為列
df2.reset_index()
代碼結果:
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 |
直接刪除對指定索引
df2.reset_index('Z',drop=True)
代碼結果:
X | Y | |
---|---|---|
S | ||
a | 0 | 0 |
a | 1 | 1 |
a | 2 | 2 |
b | 3 | 3 |
b | 4 | 4 |
直接對原DataFrame對象修改
df2.reset_index(inplace=True) df2
代碼結果:
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 |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
python如何實現(xiàn)excel數(shù)據(jù)添加到mongodb
本文介紹了python是如何實現(xiàn)excel數(shù)據(jù)添加到mongodb,為了將數(shù)據(jù)導入mongodb,引入了pymongo,xlrd包,需要的朋友可以參考下2015-07-07淺談Python小波分析庫Pywavelets的一點使用心得
這篇文章主要介紹了淺談Python小波分析庫Pywavelets的一點使用心得,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07python按列索引提取文件夾內所有excel指定列匯總(示例代碼)
這篇文章主要介紹了python按列索引提取文件夾內所有excel指定列匯總,本文通過多種場景分析結合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下2022-03-03python實現(xiàn)beta分布概率密度函數(shù)的方法
今天小編就為大家分享一篇python實現(xiàn)beta分布概率密度函數(shù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07Python實現(xiàn)的三層BP神經(jīng)網(wǎng)絡算法示例
這篇文章主要介紹了Python實現(xiàn)的三層BP神經(jīng)網(wǎng)絡算法,結合完整實例形式分析了Python三層BP神經(jīng)網(wǎng)絡算法的具體實現(xiàn)與使用相關操作技巧,需要的朋友可以參考下2018-02-02Python還能這么玩之只用30行代碼從excel提取個人值班表
公司實行項目值班制度,拿到值班表,看到全部的值班信息,要去查找自己的值班信息,是一件頭痛的事情.作為程序員,當然要簡化,將自己的信息提煉出來,需要的朋友可以參考下2021-06-06