pandas越來越難學,只能自己找趣味了,你該這麼學,No.11

啊,大海啊,全是水

pandas啊,全是坑
沒錯,今天繼續學習難的
其實從這篇開始,每一篇都是難得…
你必須要努力看了

文末有彩蛋

分層/多級索引

我們先創建一個分層索引,看看效果

這個創建,辦法有好幾個

看一下吧
在這裏插入圖片描述

通過from_tuples創建

import pandas as pd
import random

arrays = [['bar','bar','baz','baz','foo','foo'],
['one','two','one','two','one','two']]

tuples = list(zip(*arrays))

print(tuples)

index = pd.MultiIndex.from_tuples(tuples,names=['first','second'])
print(index)

s = pd.Series([3,1,4,1,5,9],index=index)

print(s)

通過調用pd.MultiIndex.from_tuples我們可以傳入一個元組列表搞定

也可以採用兩個迭代中的每個元素配對

使用MultiIndex.from_product


iterables = [['bar','baz','foo'],['one','two']]
index = pd.MultiIndex.from_product(iterables,names=['first','second'])
print(index)

效果是一樣的哦

在來一個比較方便的,生成一個多層索引

直接將列表傳遞到Series或者DataFrame中去看看

arrays = [['bar','bar','baz','baz','foo','foo'],
          ['one','two','one','two','one','two']]

s = pd.Series([3,1,4,1,5,9],index=arrays)

print(s)

看好這個一一對應的關係就好了
在這裏插入圖片描述
用到dataframe上,也是一樣的哦
沒啥區別

在這裏插入圖片描述

最新的0.24版本的pandas裏面
看,寫就寫最新的

增加了一個方法
MultiIndex.from_frame

MultiIndex.from_frame(df, sortorder=None, names=None)

使用起來,比較清晰

df = pd.DataFrame([['A','nice'],['A','to'],
                  ['B','good'],['B','ye']],
                  columns=['first','second'])

print(df)

index = pd.MultiIndex.from_frame(df)
print(index)

注意啊,這個是0.24版本以上的pandas可以用

小注意

所有的MultiIndex構造函數都接收一個names參數,該參數存儲index自己的名稱,如果沒有傳遞,默認值爲None

索引可以設置在pandas對象的任意軸上

這種情況,直接拋栗子就好了

data = [[1,2,4,5,6,7],[1,2,3,4,5,6]]
arrays = [['bar','bar','baz','baz','foo','foo'],
          ['one','two','one','two','one','two']]

tuples = list(zip(*arrays))

index = pd.MultiIndex.from_tuples(tuples,names=['first','second'])
df = pd.DataFrame(data,index=['A','B'],columns=index)
print(df)

查閱結果,看到columns 列名,已經被修改成多級的
在這裏插入圖片描述
如果你要繼續嘗試,彆着急,新的代碼來了

data = [[1,2,4,5],[1,2,3,4]]
arrays = [['bar','bar','baz','baz','foo','foo'],
          ['one','two','one','two','one','two']]

tuples = list(zip(*arrays))

index = pd.MultiIndex.from_tuples(tuples,names=['first','second'])
df = pd.DataFrame(data,index=['A','B'],columns=index[:4])
print(df)

直接使用index切片,選擇索引的數量

好了,多層索引先寫到這裏啦

明天繼續,彩蛋時間

歡迎關注公衆號哦

http://t.cn/Ai9HgtwC
在這裏插入圖片描述

今天必須要黑一個網站了

這個網站叫做博x園

發文章的邏輯是這樣的

發佈的時候

用戶可以自己選擇是否上傳首頁
看好,自己選擇

然後,管理員在把“不好”的刪掉

用什麼定義不好呢?這要看“權限狗們”如何看待了

重點來了,畫重點

它不但刪你的文章,還封禁你推送的功能

一句話,你隨便發,我隨便封

rubbish

以後如果測試壓力代碼,全部往垃圾園扔

個人牢騷,不接受反駁

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章