pandas是數(shù)據(jù)分析師最常用的工具之一,掌握以下函數(shù)足以應(yīng)對工作中的各種需求,
P4 數(shù)據(jù)集描述
P5 重命名列名稱
P6 刪除列
P7 整體排序
P8 通過列條件篩選數(shù)據(jù)
P9 多條件篩選
P11 怎樣使用axis參數(shù)
P12 字符串方法
P13 改變數(shù)據(jù)類型
P14 什么時候使用groupby
P15 探索series
P16 處理缺失值
P17 關(guān)于index
P18 選擇多行或多列
P21 減少dataframe占用內(nèi)存
P24 創(chuàng)建虛擬變量(one-hot編碼)
P25 時間字段處理
P26 去除重復(fù)項
P27 怎樣避免SettingWithCopyWarming
P28 改變顯示選項
P29 創(chuàng)建Dateframe的方式
P30 對DataFrame或Series使用函數(shù)
P4 數(shù)據(jù)集描述
P5 重命名列名稱
df.columnsdf.rename(columns={'name1':'rename1', 'name2':'rename2'}, inplace=True)df_newcolumns = ['rename1', 'rename2']df.columns = df_newcolumns# 替換列名中的字符df.columns = df.columns.str.replace(' ', '_')
P6 刪除列
P7 整體排序
df['name1'].sort_values(ascending=False) # ascending=False 倒序df.sort_values('name', ascending=False)df.sort_values(['name1','name2'], ascending=False)
P8 通過列條件篩選數(shù)據(jù)
P9 多條件篩選
df[(df.name1>10) & (df.name2<0)]df[(df.name1>10) | (df.name2<0)]df[df.name1.isin(['key1', 'key2', 'key3'])]
P11 怎樣使用axis參數(shù)
P12 字符串方法
# name1列轉(zhuǎn)大寫df.name1.str.upper()df.name1.str.contain('hah') # 返回True/Falsedf[df.name1.str.contain('hah')] # 用于篩選
P13 改變數(shù)據(jù)類型
P14 什么時候使用groupby
df.groupby('name1').name2.mean()df.groupby('name1').name2.agg(['count','mean', 'max', 'min'])df.groupby('name1').mean() # 得到所有列的均值對每列使用不同的聚合函數(shù)怎么做
P15 探索series
P16 處理缺失值
# 查看是否是缺失值df.isnull()/df.notnull()# 查看每個特征缺失值數(shù)量df.isnull().sum()df.dropna(how='any') # 刪除所有包含缺失值的行df.dropna(how='all') # 刪除所有值都是缺失值的行df.dropna(subset=['name1', 'name2'], how='any') # 刪除這兩列中包含缺失值的行# 填充缺失值df['name'] = df['name'].fillna(value='hah', inplace=True)
P17 關(guān)于index
P18 選擇多行或多列
df.loc # 使用標(biāo)簽名稱df.loc[1:3,:] # 包含1和3df.iloc # 使用位置df.iloc[1:3,:] # 包含1不包含3
P21 減少dataframe占用內(nèi)存
P24 創(chuàng)建虛擬變量(one-hot編碼)
df['new_name'] = df.name.map({'x':1, 'y':2}) # 把name列中的x改為1,y改為2pandas.get_dummies(df.sex, prefix='sex') # 離散特征重新編碼,以x開頭pandas.get_dummies(df, columns=['name1', 'name2'], drop_first=True) # drop_first參數(shù)默認(rèn)為False,刪除結(jié)果中的第一列。
P25 時間字段處理
P26 去除重復(fù)項
# 重復(fù)個數(shù)df.name.dumplicated().sum()df.dumplicated().sum()# 重復(fù)項明細(xì)df.loc[df.dumplicated(keep=False), :] keep參數(shù),F(xiàn)alse全部顯示,first顯示做后一個,last顯示第一個;# 刪除重復(fù)想df.drop_dumplicates(keep=last)df.drop_dumplicates(subset=['name1', 'name2'])
P27 怎樣避免SettingWithCopyWarming
P28 改變顯示選項
主要方法 pandas.get_option()顯示所有行pd.set_option('display.max_rows', None)默認(rèn)顯示60行pd.set_option('display.max_rows', None)其他選項最大列數(shù):display.max_columns最大單元格寬度:display.max_colwidth小數(shù)點位數(shù):display.precision查看目前選項:pd.describe_option()pd.describe_option('rows')重置所有默認(rèn)選項pd.reset_option('all')
P29 創(chuàng)建Dateframe的方式
P30 對DataFrame或Series使用函數(shù)
mapdf['name1'] = df.name.map({'x':1, 'y':2}) applydf[name1] = df.name,apply(len)df[name1] = df.name,apply(np.ciel)def fun(x,y): return x[y] df.name.apply(fun, y=2df.apply(max, axis=0) 每一列的最大值df.apply(max, axis=1) 每一行的最大值df.apply(np.argmax, axis=1) 每一行的最大值對應(yīng)的列名applymap 針對全局每一個單元格做操作df.applymap(float)
聯(lián)系客服