pandas模組
阿新 • • 發佈:2021-10-14
目錄
- 練習題
- pandas模組簡介
- 資料型別之Series
- 缺失資料概念
- 資料修改規則
- 布林值索引
- 行索引/行標籤
練習題
1.計算陣列每一行和每一列的中位數(不使用axis引數)
import numpy as np
res = np.array([ [ 80.5, 60., 40.1, 20., 90.7], [ 10.5, 30., 50.4, 70.3, 90.], [ 35.2, 35., 39.8, 39., 31.], [91.2, 83.4, 85.6, 67.8, 99.] ])
每一行均值
for i in res:print('每一行>>>:',i) print('中位數>>>:',np.median(i))
每一列均值
for i in range(res.shape[1]): print('每一列>>>:',res[:,i]) print('中位數>>>:',np.median(res[:,i]))
2.jason有10000塊錢,去某賭場嗨皮假設輸贏概率都是50%,
並且贏一場賺100輸一場虧100
jason總共玩了1500場,寫程式計算1500場之後jason還剩多少錢
# 先定義一個變數儲存jason的本金money = 10000 # 利用for迴圈模擬1500次賭局 for i in range(1500): # 先判斷輸贏 is_right = np.random.choice([1,0]) # 1表示贏 0表示輸 # 判斷贏則賬戶加100 if is_right: money += 100 # 判斷輸則賬戶減100 else: money -= 100 # 迴圈結束即1500場完成 print(money)
擴充套件:統計jason每一次賭完後賬戶總額
# 先定義一個變數儲存jason的本金 money = 10000 # 再定義一個儲存每次賭局之後賬戶金額的變數 package = []# 先將jason初始的本金新增進來 package.append(money) # 利用for迴圈模擬1500次賭局 for i in range(1500): # 先判斷輸贏 is_right = np.random.choice([1,0]) # 1表示贏 0表示輸 # 判斷贏則賬戶加100 if is_right: money += 100 # 判斷輸則賬戶減100 else: money -= 100 # 每次迴圈結束之後都將結構新增到列表中 package.append(money) # 迴圈結束即1500場完成 # print(money) # print('記錄',package)
pandas模組簡介
它是基於numpy構建,讓python語言成為了使用最廣泛且強大的資料分析語言,針對表格檔案的操作也有著巨大的優勢,尤其是資料量超過10萬的資料
主要功能
1.具備諸多功能的兩大資料結構 # Series、DataFrame 兩者都是基於Numpy構建出來的 公司中使用頻繁的是DataFrame,而Series是構成DataFrame的基礎 即一個DataFrame可能由N個Series構成 2.整合時間序列功能 3.提供豐富的數學運算和操作 4.靈活處理缺失資料
下載與匯入
# 下載 1.python純開發環境下 pip3 install pandas 2.anaconda環境下 conda install pandas '''anaconda已經自動下載好了資料分析相關的模組,無需再下載''' # 匯入 import pandas import pandas as pd
資料分析三劍客模組由於使用頻率很高 所以在很多ipynb檔案的開頭都會提前匯入 import numpy as np import pandas as pd
是一種類似於一維陣列物件,由資料和相關的標籤(索引)組成
第一種:
pd.Series([4,5,6,7,8])
第二種:
pd.Series([4,5,6,7,8],index=['a','b','c','d','e'])
第三種:
pd.Series({"a":1,"b":2})
第四種:
pd.Series(0,index=['a','b','c'])
在資料處理中如果遇到NaN關鍵字等同於缺失資料,且NaN屬於浮點型
方法:
1.過濾掉值為NaN的行
dropna()
2.填充缺失資料
fillna()
解決措施
3.返回布林陣列
isnull()
4.返回布林陣列
notnull()
# 如何判斷當前資料是否改變? 1.如果執行操作之後有結果說明原資料沒有變 2.如果執行操作之後沒有結果說明原資料改變
布林值索引的本質就是按照對應關係篩選出True對應的資料
方法
1.price[mask]
2.price|mask
3.(price>200) & (price<900)
# 針對&符號連結的條件都必須要加括號
4.price[(price>200) & (price<900)]
演示一:
演示二:
解決措施
s2.iloc[0]
s2.loc[1]