我呢,有個小目標,就是把技術類的文章,寫的有趣程序員
編程呢,最難的是什麼?編程
我投票給入門ide
其實,把一我的帶進編程的大門是最難的函數
而夢想橡皮擦這位大佬,就在作這個事情 (說白了,就是高深的文章寫不出來,還要裝作大佬,心好累,好不容易找到這麼一個藉口,真開心)學習
我要經過一個系列的pandas文章ui
讓你學會這一個簡簡單單的模塊spa
而後還能順便寫點好玩的東東3d
美哉~excel
每篇文章,讓你閱讀起來如絲般順滑 code
上篇博客,我們就稍微瞭解了一丟丟series的函數
遠遠不夠的 這篇呢,咱們繼續
內心默唸
pandas是處理數據的,是處理數的,數字的
OK,GET到這個就好多了
後面我就好編了
import pandas as pd
s = pd.Series([3,1,4,1,5,9,2,6,8,3,6])
print(s)
複製代碼
我建立了一個基本的Series,而後要對它進行處理了
對一個線性的數據來講
咱們能夠幹不少事情
好比,我要獲取最大最小值
import pandas as pd
s = pd.Series([3,1,4,1,5,9,2,6,8,3,6])
print(s.min())
print(s.max())
複製代碼
這個寫法仍是太簡單了,顯示不出來咱們學到東西了
咱弄點新鮮的(其實就是官網比較複雜的例子)
先給series建立一個帶有層次的索引
帶有層次的索引,啥意思?
其實就是excel裏面的合併單元格 看代碼
idx = pd.MultiIndex.from_arrays([
['warm', 'warm', 'cold', 'cold'],
['dog', 'falcon', 'fish', 'spider']]
,names=['blooded', 'animal'])
s = pd.Series([4, 2, 0, 8], name='legs', index=idx)
print(s)
複製代碼
一個關於冷血動物和溫血動物關於有多少足的表格
唉,好長一段文字,輸出長這個樣子
看不明白,不要緊,放到excel裏面瞅瞅 咋麼樣,小版一排,清晰明瞭就一個表格 當前前面依舊是index 真正的數據就後面那一列
而後,操做一番
idx = pd.MultiIndex.from_arrays([
['warm', 'warm','warm', 'cold', 'cold'],
['dog', 'falcon','people', 'fish', 'spider']]
,names=['blooded', 'animal'])
s = pd.Series([4, 2,2, 0, 8], name='legs', index=idx)
print(s)
print(s.min())
print(s.max(level='blooded'))
複製代碼
後面的level就是控制多索引的哦~
看到結果,你能夠秒懂嗎?
s = pd.Series([4, 2,2, 0, 8], name='legs', index=idx)
print(s)
print(s.min()) # 輸出0
print(s.max(level='blooded')) # 輸出 下面的表格
複製代碼
沒錯,我是下面的表格
學會了吧,這個學會了,min,max,sum,idxmin,idxmax你應該都會了
什麼idx是啥?看看上面的代碼 那個是索引... ...
對於series來講,還有一個屬性很是,很是重要,重要到使用以後,沒啥效果?
這個屬性就是T 沒錯,一個大寫的字母T
哈哈哈,其實這個屬性對於series來講,基本沒啥用
使用以後仍是等於本身自己
s = pd.Series([3,1,4],index=['a','b','c'])
print(s)
print(s.T)
複製代碼
好像跑偏了,怎麼看到屬性去了
繼續看函數啊
一個線性雜亂的數據,對於咱們來講 還能夠排序啊
import pandas as pd
s = pd.Series([3,1,4,1,5,9,2,6,8,3,6])
複製代碼
既然排序了,你一猜,就能猜到(其實通常人根本猜不到,也就老師以爲你能猜到)
一個是按照值排序,一個是按照索引排序
import pandas as pd
s = pd.Series([3,1,4,1,5,9,2,6,8,3,6])
print(s.sort_values())
print(s.sort_index())
複製代碼
排序的一些參數,能夠屢屢
Series.sort_values(axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last')
複製代碼
inplace
看一下下面的代碼,原地替換
s = pd.Series([3,1,4,1,5,9,2,6,8,3,6])
sorted_s = s.sort_values(inplace=True)
print(sorted_s)
複製代碼
這時候打印出來的是None,可是你打印s,就能出現排序以後的文字
明白了沒? 就是把s變量直接給排序了
獲取頭部幾條
頭部頭部head
獲取末尾幾條
tail,tail
import pandas as pd
s = pd.Series([3,1,4,1,5,9,2,6,8,3,6])
print(s.head(2))
print(s.tail(2))
複製代碼
獲取部分數據能夠,那麼確定也能夠刪除數據嘍 (我順口說的)
Series.drop
import pandas as pd
s = pd.Series([3,1,4,1,5,9,2,6,8,3,6])
print(s.drop(labels=[0,1]))
複製代碼
對於series來講,labels參數是必備的
爲何呢?由於其它的壓根不支持
新版本的能夠用index替換labels好了,又學到新知識點了吧
很少很多,幾個正好
每日學一點吧,啊
明天寫點啥,多是DataFrame吧
掏出你的手機,拍這個