當前位置:成語大全網 - 新華字典 - 14Pandas 百題大沖關

14Pandas 百題大沖關

導入 Pandas:

查看 Pandas 版本信息:

Pandas 的數據結構:Pandas 主要有 Series(壹維數組),DataFrame(二維數組),Panel(三維數組),Panel4D(四維數組),PanelND(更多維數組)等數據結構。其中 Series 和 DataFrame 應用的最為廣泛。

Series 是壹維帶標簽的數組,它可以包含任何數據類型。包括整數,字符串,浮點數,Python 對象等。Series 可以通過標簽來定位。

DataFrame 是二維的帶標簽的數據結構。我們可以通過標簽來定位數據。這是 NumPy 所沒有的。

Pandas 中,Series 可以被看作由 1 列數據組成的數據集。

創建 Series 語法:s = pd.Series(data, index=index),可以通過多種方式進行創建,以下介紹了 3 個常用方法。

從列表創建 Series:

從 Ndarray 創建 Series:

從字典創建 Series:

修改 Series 索引:

Series 縱向拼接:

Series 按指定索引刪除元素:

Series 修改指定索引元素:

Series 按指定索引查找元素:

Series 切片操作:

Series 加法運算:

Series 的加法運算是按照索引計算,如果索引不同則填充為 NaN(空值)。

Series 減法運算:

Series的減法運算是按照索引對應計算,如果不同則填充為 NaN(空值)。

Series 乘法運算:

Series 的乘法運算是按照索引對應計算,如果索引不同則填充為 NaN(空值)。

Series 除法運算:

Series 的除法運算是按照索引對應計算,如果索引不同則填充為 NaN(空值)。

Series 求中位數

Series 求和:

Series 求最大值:

Series 求最小值:

與 Sereis 不同,DataFrame 可以存在多列數據。壹般情況下,DataFrame 也更加常用。

通過 NumPy 數組創建 DataFrame:

通過字典數組創建 DataFrame:

查看 DataFrame 的數據類型:

預覽 DataFrame 的前 5 行數據:

查看 DataFrame 的後 3 行數據:

查看 DataFrame 的索引:

查看 DataFrame 的列名:

查看 DataFrame 的數值:

查看 DataFrame 的統計數據:

DataFrame 轉置操作:

對 DataFrame 進行按列排序:

對 DataFrame 數據切片:

對 DataFrame 通過標簽查詢(單列):

對 DataFrame 通過標簽查詢(多列):

對 DataFrame 通過位置查詢:

DataFrame 副本拷貝:

判斷 DataFrame 元素是否為空:

添加列數據:

根據 DataFrame 的下標值進行更改。:

根據 DataFrame 的標簽對數據進行修改:

DataFrame 求平均值操作:

對 DataFrame 中任意列做求和操作:

將字符串轉化為小寫字母:

將字符串轉化為大寫字母:

對缺失值進行填充:

刪除存在缺失值的行:

DataFrame 按指定列對齊:

CSV 文件寫入:

CSV 文件讀取:

Excel 寫入操作:

Excel 讀取操作:

建立壹個以 2018 年每壹天為索引,值為隨機數的 Series:

統計s 中每壹個周三對應值的和:

統計s中每個月值的平均值:

將 Series 中的時間進行轉換(秒轉分鐘):

UTC 世界時間標準:

轉換為上海所在時區:

不同時間表示方式的轉換:

創建多重索引 Series:

構建壹個 letters = ['A', 'B', 'C'] 和 numbers = list(range(10))為索引,值為隨機數的多重索引 Series。

多重索引 Series 查詢:

多重索引 Series 切片:

根據多重索引創建 DataFrame:

創建壹個以 letters = ['A', 'B'] 和 numbers = list(range(6))為索引,值為隨機數據的多重索引 DataFrame。

多重索引設置列名稱:

DataFrame 多重索引分組求和:

DataFrame 行列名稱轉換:

DataFrame 索引轉換:

DataFrame 條件查找:

查找 age 大於 3 的全部信息

** 根據行列索引切片:**

DataFrame 多重條件查詢:

查找 age<3 且為 cat 的全部數據。

DataFrame 按關鍵字查詢:

DataFrame 按標簽及列名查詢。:

DataFrame 多條件排序:

按照 age 降序,visits 升序排列

DataFrame 多值替換:

將 priority 列的 yes 值替換為 True,no 值替換為 False。

DataFrame 分組求和:

使用列表拼接多個 DataFrame:

找出 DataFrame 表中和最小的列:

DataFrame 中每個元素減去每壹行的平均值:

DataFrame 分組,並得到每壹組中最大三個數之和:

當分析龐大的數據時,為了更好的發掘數據特征之間的關系,且不破壞原數據,就可以利用透視表 pivot_table 進行操作。

透視表的創建:

新建表將 A, B, C 列作為索引進行聚合。

透視表按指定行進行聚合:

將該 DataFrame 的 D 列聚合,按照 A,B 列為索引進行聚合,聚合的方式為默認求均值。

透視表聚合方式定義:

上壹題中 D 列聚合時,采用默認求均值的方法,若想使用更多的方式可以在 aggfunc 中實現。

透視表利用額外列進行輔助分割:

D 列按照 A,B 列進行聚合時,若關心 C 列對 D 列的影響,可以加入 columns 值進行分析。

透視表的缺省值處理:

在透視表中由於不同的聚合方式,相應缺少的組合將為缺省值,可以加入 fill_value 對缺省值處理。

在數據的形式上主要包括數量型和性質型,數量型表示著數據可數範圍可變,而性質型表示範圍已經確定不可改變,絕對型數據就是性質型數據的壹種。

絕對型數據定義:

對絕對型數據重命名:

重新排列絕對型數據並補充相應的缺省值:

對絕對型數據進行排序:

對絕對型數據進行分組:

缺失值擬合:

在FilghtNumber中有數值缺失,其中數值為按 10 增長,補充相應的缺省值使得數據完整,並讓數據為 int 類型。

數據列拆分:

其中From_to應該為兩獨立的兩列From和To,將From_to依照_拆分為獨立兩列建立為壹個新表。

字符標準化:

地點的名字都不規範(如:londON應該為London)需要對數據進行標準化處理。

刪除壞數據加入整理好的數據:

將最開始的 From_to 列刪除,加入整理好的 From 和 to 列。

去除多余字符:

如同 airline 列中許多數據有許多其他字符,會對後期的數據分析有較大影響,需要對這類數據進行修正。

格式規範:

在 RecentDelays 中記錄的方式為列表類型,由於其長度不壹,這會為後期數據分析造成很大麻煩。這裏將 RecentDelays 的列表拆開,取出列表中的相同位置元素作為壹列,若為空值即用 NaN 代替。

信息區間劃分:

班級壹部分同學的數學成績表,如下圖所示

但我們更加關心的是該同學是否及格,將該數學成績按照是否>60來進行劃分。

數據去重:

壹個列為A的 DataFrame 數據,如下圖所示

嘗試將 A 列中連續重復的數據清除。

數據歸壹化:

有時候,DataFrame 中不同列之間的數據差距太大,需要對其進行歸壹化處理。

其中,Max-Min 歸壹化是簡單而常見的壹種方式,公式如下:

Series 可視化:

DataFrame 折線圖

DataFrame 散點圖

DataFrame 柱形圖