1. 程式人生 > 其它 >pandas模組

pandas模組

目錄

  • 練習題
  • 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

資料型別之Series

是一種類似於一維陣列物件,由資料和相關的標籤(索引)組成

第一種:

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]