国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
【Python數(shù)據(jù)挖掘】第一篇
一、數(shù)據(jù)讀取

1. pandas 數(shù)據(jù)讀?。?/span>

1
2
import pandas as pd
df = pd.read_csv("G:\\...\\NBA.csv",encoding='gbk')

read_csv 的重要參數(shù):

filepath_or_buffer:  # 文件的路徑,URL或任何具有read()方法的對(duì)象。sep :     # 分隔符,默認(rèn)為 , header:   # 列名 , 默認(rèn)為 header=0  取第0行做為數(shù)據(jù)集的列名names:    # 指定數(shù)據(jù)集的列名稱(chēng),配合header=None 使用  encoding: # 編碼格式na_values:["Nope , ..."]      # 數(shù)據(jù)集中的字符串"Nope"被識(shí)別為NaN , ...keep_defalut_na:   # 如果指定了na_values,并且keep_default_na是False默認(rèn)的NaN值被覆蓋na_filter:         # 默認(rèn)True,對(duì)缺失值進(jìn)行檢測(cè),F(xiàn)alse為不處理。error_bad_lines:   # 默認(rèn)True,如果False,跳過(guò)錯(cuò)誤行數(shù)據(jù)warn_bad_lines:    # 默認(rèn)True,如果error_bad_lines為False,而warn_bad_lines為T(mén)rue,則會(huì)輸出每個(gè)“壞行”的警告

2、Missing data 處理

DataFrame.dropna()       # 返回沒(méi)有NaN值的數(shù)據(jù)集DataFrame.fillna(X)      # 將X填充到數(shù)據(jù)集中的NaN值DataFrame.replace([to_replace, value, ...])   # 將to_replace 替換為 value , # 例子:df.replace(np.nan,'xx',regex=False)    # 將NaN值替換為xx , regex 若為T(mén)rue 將to_value 當(dāng)作正則進(jìn)行匹配!
 二、DataFrame與Series

1、DataFrame 是一個(gè)表格型數(shù)據(jù)結(jié)構(gòu),既有行索引又有列索引,看作由Series組成的字典。

1
df = pd.read_csv("G:\\....\\NBA.csv",encoding='gbk')

重要方法:

 

查看:    head([n])           # 返回前n行    tail([n])           # 返回最后n行    df[' 列名 ']        # 返回某一列的數(shù)據(jù)     df.列名             # 返回某一列的數(shù)據(jù) 添加 / 修改整列 :    df[' 列名 '] = 'xxx '   # (添加/修改) 一列,內(nèi)容為xxx刪除:    del df[' 列名 ']    # 刪除某一列    df.pop('列名')      # 返回項(xiàng)目并從DataFrame中刪除列運(yùn)算:    df[col3] = df[col1] + df[col2]判斷:    df[ ' 列名 ' ]  > 100     # 符合顯示 True , 否則False

 

重要屬性:

1.index

1
2
df.index
# RangeIndex(start=0, stop=3922, step=1)    # 3922文件總行數(shù) ,

2.columns    返回列名

1
2
df.columns
# Index(['序號(hào)', 'Player', 'height', 'weight', 'collage', 'born', 'birth_city','birth_state'],dtype='object')

3.shape

1
2
df.shape
# (3922, 8)   數(shù)據(jù)集一共3922行,8列

4.dtypes      返回每一列數(shù)據(jù)類(lèi)型

1
2
3
4
5
6
7
8
9
10
df.dtypes
# 序號(hào)              int64
# Player           object
# height           float64
# weight           float64
# collage          object
# born             float64
# birth_city       object
# birth_state      object
# dtype: object

行選取 

1.切片

1
df[:5]  或  df [10]

2.特殊的索引選取方式

1
df.iloc[0]     # 返回索引為0的行信息

2、Series 一維數(shù)組對(duì)象,由一組數(shù)據(jù)和與之相關(guān)的數(shù)據(jù)標(biāo)簽(索引)組成。

1
2
3
4
5
series = df['列名']
series = df.列名
# 篩選
s2 = series[ series > 100 ]   # 返回大于100的數(shù)據(jù)集

屬性:

1
2
series.index
series.value

方法:

1
2
3
series.value_counts()       # 出現(xiàn)頻數(shù)
series.unique()                 # 返回對(duì)象中的唯一值的np.ndarray。
len( series.unique )          # 查看長(zhǎng)度

3、創(chuàng)建DataFrame 與 Series

1、創(chuàng)建Series

1
2
3
4
5
6
7
8
9
10
11
# 1. 字典形式 :
sdata = {"A":'123',"B":'456'}
series1 = pd.Series( sdata )
# 2. 數(shù)組形式 :
series2 = pd.Series([1,2,3,4,5] )   # 默認(rèn)索引從0 開(kāi)始, ...
series2 = pd.Series([1,2,3,4,5] , index = ['a','b','c','d','e'] )
series2 = pd.Series([1,2,3,4,5] , index = list('abcde') )
# 3. 實(shí)數(shù)形式 :
series3 = pd.Series(11 , index = list('abc') )

2、創(chuàng)建DataFrame

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 1. 字典形式
# 一層字典:
data = {
    'state':['Ohio','Nevada','Ohio'],
    'year':[1999,1888,1777],
    'pop':[1.4,1.2,1.1]
}
df1 = pd.DataFrame(data)          # 列名:pop,year,stats(亂序) , 行索引默認(rèn)從0開(kāi)始
df1 = pd.DataFrame(data , columns = ['pop','year','stats'])   # 指定數(shù)據(jù)表中列名順序
df1 = pd.DataFrame(data , index = ['one','two','three'] )   # 指定索引
# 兩層字典:
data = {
    'A':{'user':'alex','age':20},
    'B':{'user':'eric','age':10},
}
df2 = pd.DataFrame(data)        # 外層字典的key作為列 , 內(nèi)層key作為行索引
df2 = pd.DataFrame(data , index = ['user','age'])   # 顯式指出行索引
# 2. 二維數(shù)組
arr = [ [1,2,3,4] , [5,6,7,8] ]
pd.DataFrame(arr)

3、Series  =》 DataFrame

1
pd.DataFrame(Series)
三、分組 GroupBy
1
2
df2 = pd.read_csv("G://..../pokemon.csv",encoding='gbk')
g1 = df2.groupby(['Type 1' , ... ])

重要屬性:

1.groups 返回dict {group name -> group labels} , 分組里每個(gè)組對(duì)應(yīng)的索引項(xiàng)列表

重要方法:

1.first()  返回組中每一列的第一個(gè)值(非NaN)

2.size()  返回分組中類(lèi)型的個(gè)數(shù)

3.describe()  生成各種匯總統(tǒng)計(jì),不包括NaN值

4.get_group('xxx')   獲取該分組下所有項(xiàng)內(nèi)容

Aggregation:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 方式一 :
g1.sum()
# 方式二 :
import numpy as np
g1.agg(np.sum)
# 方式三 :
g1.agg(np.sum)[' 列名 ']      # 單獨(dú)計(jì)算某一列
g1[' 列名 '].agg(np.sum)
# 多重計(jì)算 :
g1.agg([ np.sum,np.mean,np.std,... ])
# 每一列 都使用不同統(tǒng)計(jì)量 (字典)
g1.agg( {"HP":[np.sum,np.mean],"Attack":np.std} )
# 重新命名返回的列
xxxx.rename(columns = {"HP":'aaa',"Attack":"bb"})

Transformation :

  • Transform返回發(fā)數(shù)據(jù)集與原數(shù)據(jù)集大小一樣

  • 每一個(gè)函數(shù)都是對(duì)每一個(gè)group進(jìn)行的操作,不是全部的數(shù)據(jù)集

  • 不會(huì)改變?cè)術(shù)roup的數(shù)據(jù),返回的是新數(shù)據(jù)

  • 每個(gè)函數(shù)是作用在每個(gè)group里面的column上

1
2
f = lambda s : ( s - s.mean() ) / s.std
g1.transform( f )   # transform 計(jì)算非字符型變量

Filtration :

  • 作用于整個(gè)group上 或者 作用于某個(gè)列

  • 返回DataFrame

1
2
3
df = g1.filter(lambda s : len(s) >= 80 )             # 分組內(nèi)項(xiàng)總數(shù)大于80
df = g1.filter(lambda s : np.mean(s['HP']) >= 60 )   # 分組中HP平均值大于60

  

 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
數(shù)據(jù)科學(xué) | Pandas數(shù)據(jù)分析入門(mén)
25000字玩轉(zhuǎn) Pandas, 這一篇給力了!
Python 數(shù)據(jù)處理庫(kù) pandas 入門(mén)教程
推薦收藏!3.5萬(wàn)字圖解 Pandas!
太香了!最強(qiáng)的 pandas 入門(mén)教程
2
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服