日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

【Pandas库】(4) 索引操作--重新生成索引

發布時間:2023/11/27 生活经验 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Pandas库】(4) 索引操作--重新生成索引 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

各位同學好,今天和大家分享一下pandas庫的索引操作--重新生成索引。

本文主要介紹如何重新生成Series類型DataFrame類型的索引。

(1)Series類型重新生成索引

方法:?變量 = Series名.reindex([索引名]) ? ??

????????采用該方法需要使用一個變量來接收返回值。重新生成索引的方法不會直接修改原數據,需要有一個變量來接收修改后的結果。

????????如下代碼,由于在定義Series類型數據時,ps1中沒有出現索引名'f',因此在重新生成索引時,添加的索引'f'對應的值是nan。

import pandas as pd  #導入pandas庫
# 生成一個Series數據,指定索引名
ps1 = pd.Series(range(1,6),index=['a','b','c','d','e'])
# 對ps1的索引名重新索引
ps2 = ps1.reindex(['e','d','c','b','a','f'])

為了便于大家理解重新索引的方法,我再舉個例子。

????????首先定義了一個元素從1到5的Series類型數據ps1,ps1默認索引是數值類型的0、1、2...。索引重新生成時,'a'、'b'、'c'...等索引均沒在ps1中出現,因此ps2接收的重新索引結果都為nan空值。要注意的是,ps3接收的結果也是nan空值,是因為重新索引時的'0'、'1'、'2'...都是字符串類型,而ps1中的索引是數值型的0、1、2...,這個不要混淆,一定要注意索引名。

import pandas as pd  #導入pandas庫
ps1 = pd.Series(range(1,6))  # 生成一個元素為1到5的Series類型數據
# 由于ps1中索引名沒有出現過a,b,c...,因此ps3都是nan
ps2 = ps1.reindex(["a","b","c","d","e",'f'])
# ps1中的索引是數值類型的0、1、2...,重新索引時""
ps3 = ps1.reindex(["0","1","2","3","4"])
# ps4 更改正確
ps4 = ps1.reindex([4,3,2,1,0])

?(2)DataFrame類型重新生成索引

重新生成行索引: 新變量 =?變量名.reindex([行索引名])

重新生成列索引:?新變量 = 變量名.reindex(columns=[列索引名])

????????首先討論一下重新生成行索引,重新定義行索引不會直接修改原值,需要有一個新的變量來接收更改后的數據。我定義了一個DataFrame類型數據,命名pd1,它的行索引為'a','b','c',列索引為"A","B","C"。重新指定行索引,pd2多指定了一個'd'索引,然而'd'并沒有在pd1中出現,因此'd'索引對應的值也是nan空值。pd3實現了重新指定行索引,索引對應的值也一起換了位置。

import pandas as pd
import numpy as np
# 使用np庫生成1、2、...、9共九個數,使用reshape(行數,列數)函數,使它變成三行三列
pd1 = pd.DataFrame(np.arange(1,10).reshape(3,3),index=["a","b","c"],columns=["A","B","C"])
pd2 = pd1.reindex(['a','b','c','d']) #多指定一行,對應行對象是nan
pd3 = pd1.reindex(["c","b","a"])   #行互換位置

?????????我們再來看一下重新定義列索引,重新定義列索引不會直接修改原值,需要有一個新的變量來接收更改后的數據。我仍使用上面定義的pd1數據,pd4成功交換了列的索引位置,然而在pd5中,我多指定了一個列索引'D',這個索引沒有在pd1中出現過,因此在重新索引后的結果中,'D'列的值都是nan空值。

import pandas as pd
import numpy as np
# 使用np庫生成1、2、...、9共九個數,使用reshape(行數,列數)函數,使它變成三行三列
pd1 = pd.DataFrame(np.arange(1,10).reshape(3,3),index=["a","b","c"],columns=["A","B","C"])
pd4 = pd1.reindex(columns=["C","B","A"])  #列交換位置
pd5 = pd1.reindex(columns=["A","B","C","D"])  #多添加一列

總結

以上是生活随笔為你收集整理的【Pandas库】(4) 索引操作--重新生成索引的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。