如何高效地學習數據結構——Python篇
04-03
原文鏈接:http://www.datastudy.cc/to/45
我們來看看如何高效地學習一門語言的數據結構,今天我們先看Python篇。 所謂數據結構,是指相互之間存在一種或多種特定關係的數據類型的集合。第一個問題:概念,這種數據結構的概念是什麼呢?
數據框是用於存儲多行和多列的數據集合,下面我們使用一張圖片,形象地講解它的內部結構: OK,這個就是數據框的概念了。 第二個問題:定義,如何定義這種數據結構呢? DataFrame函數語法 DataFrame(columnsMap) 代碼舉例 : >>> df = DataFrame({age: Series([21, 22, 23]),
name: Series([KEN, John, JIMI]) }); >>> df age name 0 21 KEN 1 22 John 2 23 JIMI OK,這個就是定義數據框DataFrame的方法了。 第三個問題:限制,使用這種數據結構,有什麼限制呢?一般而言,限制是對於這種數據結構是否只能存儲某種數據類型,在Python的數據框中,允許存放多種數據類型,基本上對於默認的數據類型,沒有任何限制。
第四個問題:訪問,訪問這種數據結構內的數據的方式是什麼呢?訪問位置方法備註訪問列變數名[列名]訪問對應列訪問行變數名[n:m]訪問n行到m-1行的數據訪問行和列變數名.iloc[n1:n2, m1:m2]訪問n1到n2-1列,m1到m2-1行的數據訪問位置變數名.at[n, 列名]訪問n行,列位置 代碼舉例 >>> df[age] 0 21 1 22 2 23 Name: age, dtype: int64 >>> df[1:2]age name
1 22 John >>> df.iloc[0:1, 0:2] age name 0 21 KEN >>> df.at[0, name] KEN >>> df[[age, name]] age name 0 21 KEN1 22 John
2 23 JIMI >>> 第五個問題:修改,如何對這種數據結構進行增加元素、刪除元素以及修改元素呢? 這個問題,我並沒有在課程中跟大家討論過,主要是為了避免大家覺得學習起來很難。 也因此,這篇博文到了這裡才是真正的乾貨,之前的那些都是課程中出現過的內容了,哈哈, 修改包括: 1、修改列名,行索引 2、增加/刪除/修改 行 3、增加/刪除/修改 列好,下面我們上代碼:
from pandas import Series; from pandas import DataFrame; df = DataFrame({ age: Series([21, 22, 23]), name: Series([KEN, John, JIMI]) }); #1.1、修改列名 >>> df.columns Index([age, name], dtype=object)>>> df.columns=[age2, name2]
>>> df age2 name2 0 21 KEN 1 22 John 2 23 JIMI #1.2、修改行名 >>> df.index Int64Index([0, 1, 2], dtype=int64) >>> df.index = range(1,4)>>> df.index
Int64Index([1, 2, 3], dtype=int64) #2.1、刪除行 >>> df.drop(1) age2 name2 2 22 John 3 23 JIMI >>> df age2 name2 1 21 KEN 2 22 John 3 23 JIMI #注意,刪除後的DataFrame需要一個變數來接收,並不會直接修改原來的DataFrame. >>> newdf = df.drop(1); >>> newdf age2 name2 2 22 John 3 23 JIMI #2.2、刪除列 >>> del newdf[age2] >>> newdf name2 2 John 3 JIMI #3.1、增加行 >>> df.loc[len(df)+1] = [24, "KENKEN"]; >>> df age2 name2 1 21 KEN 2 22 John 3 23 JIMI 4 24 KENKEN #3.2、增加列 >>> df[newColumn] = [2, 4, 6, 8]; >>> df age2 name2 newColumn 1 21 KEN 2 2 22 John 4 3 23 JIMI 6 4 24 KENKEN 8 以上就是全部五個問題的答案了,通過自問自答這五個問題,我們就可以高效地學習某種數據結構了。推薦閱讀:
※不同需求下可視化圖形選擇(翻譯)
※《BI程序猿——2017年總結》
※Titanic 數據分析
※零基礎學習Python數據分析:科學計算庫NumPy(2)
※「有層次、可發展」的門店數字化管理,是通往新零售的必經之路
TAG:數據分析 |