1. 程式人生 > 實用技巧 >numpy pandas 使用筆記

numpy pandas 使用筆記

from random import randint
import pandas as pd
import numpy as np
df = pd.DataFrame(index=range(10), columns=list('ABCD'))
A = np.array(range(20, 30))
# 動態新增一列
df['E'] = A
# 新增一行  注意列名必須一致
_11 = pd.DataFrame(data=[[1,1,1,1,1]], columns=list('ABCDE'))
# print(_11)
_11df = df.append(_11, ignore_index=True) #
是否繼續累加原行號 # print(_11df) _12 = pd.Series({'A':randint(-1,1), 'B':randint(-1,1), 'C':randint(-1,1), 'D':randint(-1,1), 'E':randint(-1,1)}) _12df = df.append(_12, ignore_index=True) # print(_12df) df.loc[10] = [randint(-1,1) for n in range(5)] # print(df) # 修改值 df.loc[6, :] = [66,66,66,66,66] df.loc[[
7,8,9], :] = [[77,77,77,77,77], [88,88,88,88,88], [99,99,99,99,99]] print(df) # 獲取 A 列值為 nan 的行 print(df[pd.isna(df['A'])]['A']) # 獲取 A 列值不為 nan 的行 print(df[~pd.isna(df['A'])]['A']) # 獲取整個 df 是缺測的 isna = pd.isna(df) print(isna) # 獲取缺測的 index indnan = np.where(isna == True)
# 掩碼資料  -- 表示掩碼 ,作用:為了儲存時所佔用記憶體更小
A = np.array(range(20, 30)) a_mask = A < 25 # print(a_mask) # [ True True True True False False False False False False] ym = np.ma.array(A, mask=a_mask, fill_value=-999999) # 預設填充值 print(ym) # 列印掩碼型別 print(ym.mask) # 判斷是否時掩碼 -- print(ym[0] is np.ma.masked) # 確定輸入是否具有掩碼值 print(np.ma.is_masked(ym)) # 此函式不檢查輸入內容,僅檢查型別為MaskType 如 ym.mask print(np.ma.is_mask(ym.mask)) # 合併陣列 #TODO 注意這裡的合併陣列必須放到一個集合中 也可以說是按行或列拼接為新陣列 AA = np.concatenate([A, np.array([np.nan, np.nan])]) print(AA) # 獲取值為 nan 的 print(AA[np.isnan(AA)]) # 獲取值不為 nan 的 print(AA[~np.isnan(AA)])