最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

分享8?個常用pandas的?index設(shè)置

 更新時間:2021年12月21日 10:38:22   作者:遲業(yè)  
這篇文章主要介紹了分享8?個常用pandas的?index設(shè)置,pandas?中的?index?是行索引或行標簽。行標簽可以說是?pandas?的靈魂一簽,支撐了?pandas?很多強大的業(yè)務(wù)功能,比如多個數(shù)據(jù)框的?join,?merge?操作,自動對齊等,下面來看看文章得具體介紹吧

1. 將索引從 groupby 操作轉(zhuǎn)換為列

groupby分組方法是經(jīng)常用的。比如下面通過添加一個分組列team來進行分組。

>>> df0["team"] = ["X", "X", "Y", "Y", "Y"]
>>> df0
          A         B         C team
0  0.548012  0.288583  0.734276    X
1  0.342895  0.207917  0.995485    X
2  0.378794  0.160913  0.971951    Y
3  0.039738  0.008414  0.226510    Y
4  0.581093  0.750331  0.133022    Y
>>> df0.groupby("team").mean()
             A         B         C
team                              
X     0.445453  0.248250  0.864881
Y     0.333208  0.306553  0.443828


默認情況下,分組會將分組列編程index索引。但是很多情況下,我們不希望分組列變成索引,因為可能有些計算或者判斷邏輯還是需要用到該列的。因此,我們需要設(shè)置一下讓分組列不成為索引,同時也能完成分組的功能。

有兩種方法可以完成所需的操作,第一種是用reset_index,第二種是在groupby方法里設(shè)置as_index=False。個人更喜歡第二種方法,它只涉及兩個步驟,更簡潔。

>>> df0.groupby("team").mean().reset_index()
  team         A         B         C
0    X  0.445453  0.248250  0.864881
1    Y  0.333208  0.306553  0.443828
>>> df0.groupby("team", as_index=False).mean()
  team         A         B         C
0    X  0.445453  0.248250  0.864881
1    Y  0.333208  0.306553  0.443828


2. 使用現(xiàn)有的 DataFrame 設(shè)置索引

當然,如果已經(jīng)讀取數(shù)據(jù)或做完一些數(shù)據(jù)處理步驟后,我們可以通過set_index手動設(shè)置索引。

>>> df = pd.read_csv("data.csv", parse_dates=["date"])
>>> df.set_index("date")
            temperature  humidity
date                             
2021-07-01           95        50
2021-07-02           94        55
2021-07-03           94        56


這里有兩點需要注意下:

  • set_index方法默認將創(chuàng)建一個新的 DataFrame。如果要就地更改df的索引,需要設(shè)置inplace=True。
df.set_index(“date”, inplace=True)


  • 如果要保留將要被設(shè)置為索引的列,可以設(shè)置drop=False。
df.set_index(“date”, drop=False)


3. 一些操作后重置索引

在處理 DataFrame 時,某些操作(例如刪除行、索引選擇等)將會生成原始索引的子集,這樣默認的數(shù)字索引排序就亂了。如要重新生成連續(xù)索引,可以使用reset_index方法。

>>> df0 = pd.DataFrame(np.random.rand(5, 3), columns=list("ABC"))
>>> df0
          A         B         C
0  0.548012  0.288583  0.734276
1  0.342895  0.207917  0.995485
2  0.378794  0.160913  0.971951
3  0.039738  0.008414  0.226510
4  0.581093  0.750331  0.133022
>>> df1 = df0[df0.index % 2 == 0]
>>> df1
          A         B         C
0  0.548012  0.288583  0.734276
2  0.378794  0.160913  0.971951
4  0.581093  0.750331  0.133022
>>> df1.reset_index(drop=True)
          A         B         C
0  0.548012  0.288583  0.734276
1  0.378794  0.160913  0.971951
2  0.581093  0.750331  0.133022


通常,我們是不需要保留舊索引的,因此可將drop參數(shù)設(shè)置為True。同樣,如果要就地重置索引,可設(shè)置inplace參數(shù)為True,否則將創(chuàng)建一個新的 DataFrame

4.排序后重置索引

當用sort_value排序方法時也會遇到這個問題,因為默認情況下,索引index跟著排序順序而變動,所以是亂雪。如果我們希望索引不跟著排序變動,同樣需要在sort_values方法中設(shè)置一下參數(shù)ignore_index即可。

>>> df0.sort_values("A")
          A         B         C team
3  0.039738  0.008414  0.226510    Y
1  0.342895  0.207917  0.995485    X
2  0.378794  0.160913  0.971951    Y
0  0.548012  0.288583  0.734276    X
4  0.581093  0.750331  0.133022    Y
>>> df0.sort_values("A", ignore_index=True)
          A         B         C team
0  0.039738  0.008414  0.226510    Y
1  0.342895  0.207917  0.995485    X
2  0.378794  0.160913  0.971951    Y
3  0.548012  0.288583  0.734276    X
4  0.581093  0.750331  0.133022    Y


5.刪除重復(fù)后重置索引

刪除重復(fù)項和排序一樣,默認執(zhí)行后也會打亂排序順序。同理,可以在drop_duplicates方法中設(shè)置ignore_index參數(shù)True即可。

>>> df0
          A         B         C team
0  0.548012  0.288583  0.734276    X
1  0.342895  0.207917  0.995485    X
2  0.378794  0.160913  0.971951    Y
3  0.039738  0.008414  0.226510    Y
4  0.581093  0.750331  0.133022    Y
>>> df0.drop_duplicates("team", ignore_index=True)
          A         B         C team
0  0.548012  0.288583  0.734276    X
1  0.378794  0.160913  0.971951    Y


6. 索引的直接賦值

當我們有了一個 DataFrame 時,想要使用不同的數(shù)據(jù)源或單獨的操作來分配索引。在這種情況下,可以直接將索引分配給現(xiàn)有的 df.index。

>>> better_index = ["X1", "X2", "Y1", "Y2", "Y3"]
>>> df0.index = better_index
>>> df0
           A         B         C team
X1  0.548012  0.288583  0.734276    X
X2  0.342895  0.207917  0.995485    X
Y1  0.378794  0.160913  0.971951    Y
Y2  0.039738  0.008414  0.226510    Y
Y3  0.581093  0.750331  0.133022    Y


7.寫入CSV文件時忽略索引

數(shù)據(jù)導(dǎo)出到 CSV 文件時,默認 DataFrame 具有從 0 開始的索引。如果我們不想在導(dǎo)出的 CSV 文件中包含它,可以在to_csv方法中設(shè)置index參數(shù)。

>>> df0.to_csv("exported_file.csv", index=False)


如下所示,導(dǎo)出的 CSV 文件中,索引列未包含在文件中。

其實,很多方法中都有關(guān)于索引的設(shè)置,只不過大家一般比較關(guān)心數(shù)據(jù),而經(jīng)常忽略了索引,才導(dǎo)致繼續(xù)運行時可能會報錯。以上幾個高頻的操作都是有索引設(shè)置的,建議大家平時用的時候養(yǎng)成設(shè)置索引的習慣,這樣會節(jié)省不少時間。

8.讀取時指定索引列

很多情況下,我們的數(shù)據(jù)源是 CSV 文件。假設(shè)有一個名為的文件data.csv,包含以下數(shù)據(jù)。

date,temperature,humidity
07/01/21,95,50
07/02/21,94,55
07/03/21,94,56


默認情況下,pandas將會創(chuàng)建一個從0開始的索引行,如下:

>>> pd.read_csv("data.csv", parse_dates=["date"])
        date  temperature  humidity
0 2021-07-01           95        50
1 2021-07-02           94        55
2 2021-07-03           94        56


但是,我們可以在導(dǎo)入過程中通過將index_col參數(shù)設(shè)置為某一列可以直接指定索引列。

>>> pd.read_csv("data.csv", parse_dates=["date"], index_col="date")
            temperature  humidity
date                             
2021-07-01           95        50
2021-07-02           94        55
2021-07-03           94        56

到此這篇關(guān)于分享8 個常用pandas的 index設(shè)置的文章就介紹到這了,更多相關(guān)常用pandas的 index設(shè)置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python數(shù)據(jù)可視化Seaborn畫熱力圖

    python數(shù)據(jù)可視化Seaborn畫熱力圖

    這篇文章主要介紹了數(shù)據(jù)可視化Seaborn畫熱力圖,熱力圖的想法其實很簡單,用顏色替換數(shù)字,下面我們來看看文章對操作過程的具體介紹吧,需要的小伙伴可以參考一下具體內(nèi)容,希望對你有所幫助
    2022-01-01
  • python獲取100以內(nèi)的質(zhì)數(shù)3種方式總結(jié)

    python獲取100以內(nèi)的質(zhì)數(shù)3種方式總結(jié)

    質(zhì)數(shù)也稱為質(zhì)數(shù),具有無限個,質(zhì)數(shù)定義為大于1的自然數(shù),除了1和它本省外沒有其他因數(shù)的數(shù)稱為質(zhì)數(shù),這篇文章主要給大家介紹了關(guān)于python獲取100以內(nèi)質(zhì)數(shù)的3種方式,需要的朋友可以參考下
    2024-08-08
  • pycharm+PyQt5+python最新開發(fā)環(huán)境配置(踩坑)

    pycharm+PyQt5+python最新開發(fā)環(huán)境配置(踩坑)

    這篇文章主要介紹了pycharm+PyQt5+python最新開發(fā)環(huán)境配置(踩坑),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • Python創(chuàng)建二維數(shù)組實例(關(guān)于list的一個小坑)

    Python創(chuàng)建二維數(shù)組實例(關(guān)于list的一個小坑)

    下面小編就為大家?guī)硪黄狿ython創(chuàng)建二維數(shù)組實例(關(guān)于list的一個小坑)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Python實現(xiàn)的一個自動售飲料程序代碼分享

    Python實現(xiàn)的一個自動售飲料程序代碼分享

    這篇文章主要介紹了Python實現(xiàn)的一個自動售飲料程序代碼分享,就是用python實現(xiàn)的生活中一種投幣式自動售飲料機的內(nèi)部程序判斷代碼,需要的朋友可以參考下
    2014-08-08
  • 詳解Flask前后端分離項目案例

    詳解Flask前后端分離項目案例

    這篇文章主要介紹了Flask前后端分離項目案例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • Python函數(shù)實現(xiàn)學員管理系統(tǒng)

    Python函數(shù)實現(xiàn)學員管理系統(tǒng)

    這篇文章主要為大家詳細介紹了Python函數(shù)實現(xiàn)學員管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Python裝飾器泛化公有和私有屬性作用詳解

    Python裝飾器泛化公有和私有屬性作用詳解

    這篇文章主要為大家介紹了Python裝飾器泛化公有和私有屬性作用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • Tensorflow使用Anaconda、pycharm安裝記錄

    Tensorflow使用Anaconda、pycharm安裝記錄

    這篇文章主要介紹了Tensorflow使用Anaconda、pycharm安裝記錄,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • 簡單介紹使用Python解析并修改XML文檔的方法

    簡單介紹使用Python解析并修改XML文檔的方法

    這篇文章主要介紹了使用Python解析并修改XML文檔的方法,是Python入門學習中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-10-10

最新評論

吴桥县| 丹寨县| 清丰县| 陕西省| 托克逊县| 阜阳市| 莱芜市| 宁远县| 冷水江市| 巴塘县| 抚松县| 兴文县| 德阳市| 九江县| 和静县| 惠东县| 界首市| 麻城市| 青田县| 涿鹿县| 万宁市| 象山县| 鲁山县| 新田县| 安宁市| 永寿县| 哈巴河县| 三门峡市| 福建省| 双桥区| 崇信县| 大余县| 镇雄县| 敖汉旗| 北票市| 新化县| 宝兴县| 庄河市| 白城市| 河曲县| 上饶县|