欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)激活碼778899分享:pandas學(xué)習(xí)這些就夠了

柚子快報(bào)激活碼778899分享:pandas學(xué)習(xí)這些就夠了

http://yzkb.51969.com/

?歡迎來(lái)到python的世界

?歡迎關(guān)注?點(diǎn)贊?收藏??留言?

?本階段屬于練氣階段,希望各位仙友順利完成突破

pandas的學(xué)習(xí)思路:

實(shí)際工作當(dāng)中我們?cè)谑褂胮andas庫(kù)的時(shí)候,我們應(yīng)該有什么樣的思路? 那些使我們經(jīng)常使用到的?

總的思想就是導(dǎo)入數(shù)據(jù)進(jìn)行處理,根據(jù)結(jié)果生成圖像,從結(jié)果得到結(jié)論,那這么多的api 我們?nèi)绾稳ビ洃? 那些是工作中經(jīng)常被使用到的,我們下面來(lái)分別進(jìn)行討論.

一、基本概念

了解 pandas 是用于數(shù)據(jù)操作和分析的庫(kù)。 明白 Series 和 DataFrame 這兩種主要數(shù)據(jù)結(jié)構(gòu)的特點(diǎn),下面我們來(lái)認(rèn)識(shí)一下這兩數(shù)據(jù)結(jié)構(gòu) Series 可以看作是一個(gè)一維的、帶標(biāo)簽的數(shù)組。它有一個(gè)標(biāo)簽序列(index)和一個(gè)值序列(data)。Series 的標(biāo)簽通常是唯一的,但這不是強(qiáng)制的。 示例: import pandas as pd

# 創(chuàng)建一個(gè)簡(jiǎn)單的 Series

s = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])

print(s)

輸出: a 1

b 2

c 3

d 4

dtype: int64

在這個(gè)示例中,'a', 'b', 'c', 'd' 是索引(index),1, 2, 3, 4 是對(duì)應(yīng)的值(data)。 DataFrame 是一個(gè)二維的、大小可變的、具有潛在異構(gòu)類型列的表格型數(shù)據(jù)結(jié)構(gòu)。你可以將其看作是一個(gè) Excel 表格或 SQL 表,或者是一個(gè)由 Series 對(duì)象組成的字典。DataFrame 的每一列都可以是一個(gè)不同值的類型(數(shù)值、字符串、布爾值等)。 示例: # 創(chuàng)建一個(gè)簡(jiǎn)單的 DataFrame

df = pd.DataFrame({

'A': [1, 2, 3],

'B': [4, 5, 6],

'C': ['x', 'y', 'z']

})

print(df)

輸出: A B C

0 1 4 x

1 2 5 y

2 3 6 z

在這個(gè)示例中,A, B, C 是列標(biāo)簽,0, 1, 2 是行索引。

二、實(shí)際工作的分析數(shù)據(jù)的流程

(1) 生成數(shù)據(jù)表**?* 工作當(dāng)中一般是用導(dǎo)入.scv文件和.excel文件居多, 或者連接數(shù)據(jù)庫(kù)讀取數(shù)據(jù)庫(kù)里的表數(shù)據(jù)(2)數(shù)據(jù)表信息查看**?* 這個(gè)步驟的目的是使我們能快速了解數(shù)據(jù)表的結(jié)構(gòu),方便我們下面處理數(shù)據(jù)

(3)數(shù)據(jù)表清洗(4)數(shù)據(jù)預(yù)處理(5)數(shù)據(jù)提取(6)數(shù)據(jù)篩選(7)數(shù)據(jù)匯總(8)數(shù)據(jù)統(tǒng)計(jì) (9)數(shù)據(jù)輸出(10)數(shù)據(jù)的可視化: 以圖表的形式進(jìn)行展現(xiàn),更加的直觀

三、對(duì)應(yīng)具體的api 歸納匯總?cè)缦?注意重點(diǎn)已加粗):

一、生成數(shù)據(jù)表

1、首先導(dǎo)入pandas庫(kù),一般都會(huì)用到numpy庫(kù),所以我們先導(dǎo)入備用:

import numpy as np

import pandas as pd

2、導(dǎo)入CSV或者xlsx文件:

df = pd.DataFrame(pd.read_csv('name.csv',header=1))

df = pd.DataFrame(pd.read_excel('name.xlsx'))

二、數(shù)據(jù)表信息查看(pandas的屬性api)

1、維度查看:

df.shape

2、數(shù)據(jù)表基本信息(維度、列名稱、數(shù)據(jù)格式、所占空間等):

df.info()

3、統(tǒng)計(jì)每列的(最大值,最小值,平均值,標(biāo)準(zhǔn)差等):

df.describe()

4、某一列格式:

df['B'].dtype

5、空值:

df.isnull()

6、查看某一列空值:

df['B'].isnull()

7、查看某一列的唯一值:

df['B'].unique()

8、查看數(shù)據(jù)表的值:

df.values

9、查看列名稱:

df.columns

10、查看前5行數(shù)據(jù)、后5行數(shù)據(jù):

df.head() #默認(rèn)前5行數(shù)據(jù)

df.tail() #默認(rèn)后5行數(shù)據(jù)

三、數(shù)據(jù)表清洗

1、用數(shù)字0填充空值:

df.fillna(value=0)

2、使用列prince的平均值對(duì)NA進(jìn)行填充:

df['prince'].fillna(df['prince'].mean())

3、清除city字段的字符空格:

df['city']=df['city'].map(str.strip)

4、大小寫(xiě)轉(zhuǎn)換:

df['city']=df['city'].str.lower()

5、更改數(shù)據(jù)格式:

df['price'].astype('int')

6、更改列名稱:

df.rename(columns={'category': 'category-size'})

7、刪除后出現(xiàn)的重復(fù)值:

df['city'].drop_duplicates()

8 、刪除先出現(xiàn)的重復(fù)值:

df['city'].drop_duplicates(keep='last')

9、數(shù)據(jù)替換:

df['city'].replace('sh', 'shanghai')

四、數(shù)據(jù)預(yù)處理

1、數(shù)據(jù)表合并(工作當(dāng)中更多的是聯(lián)表進(jìn)行查詢的) 1.1 merge()

# 橫向添加數(shù)據(jù)

df.merge(df1,how='left', on ='列名') #左表的全部 + 交集

df.merge(df1,how='right', on ='列名') #交集+ 右表的全部

df.merge(df1,how='inner', on ='列名') #交集

df.merge(df1,how='outer', on ='列名') #左表全部+右表的全部

1.2 append()

# 縱向添加數(shù)據(jù)

result = df1.append(df2)

1.3 join()

# 橫向添加數(shù)據(jù)

df.join(df1,how='right', on='key') # 如果不指定連接列名默認(rèn)更具索引進(jìn)行連表

1.4 concat()

# 根據(jù)axis 可以縱向或者橫向添加數(shù)據(jù)

pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,

keys=None, levels=None, names=None, verify_integrity=False,

copy=True)

objs︰ 一個(gè)序列或系列、 綜合或面板對(duì)象的映射。如果字典中傳遞,將作為鍵參數(shù),使用排序的鍵,除非它傳遞,在這種情況下的值將會(huì)選擇 (見(jiàn)下文)。任何沒(méi)有任何反對(duì)將默默地被丟棄,除非他們都沒(méi)有在這種情況下將引發(fā) ValueError。 axis: {0,1,…},默認(rèn)值為 0。要連接沿軸。 join: {‘內(nèi)部’、 ‘外’},默認(rèn) ‘外’。如何處理其他 axis(es) 上的索引。聯(lián)盟內(nèi)、 外的交叉口。 ignore_index︰ 布爾值、 默認(rèn) False。如果為 True,則不要串聯(lián)軸上使用的索引值。由此產(chǎn)生的軸將標(biāo)記 0,…,n-1。這是有用的如果你串聯(lián)串聯(lián)軸沒(méi)有有意義的索引信息的對(duì)象。請(qǐng)注意在聯(lián)接中仍然受到尊重的其他軸上的索引值。 join_axes︰ 索引對(duì)象的列表。具體的指標(biāo),用于其他 n-1 軸而不是執(zhí)行內(nèi)部/外部設(shè)置邏輯。 keys︰ 序列,默認(rèn)為無(wú)。構(gòu)建分層索引使用通過(guò)的鍵作為最外面的級(jí)別。如果多個(gè)級(jí)別獲得通過(guò),應(yīng)包含元組。 levels︰ 列表的序列,默認(rèn)為無(wú)。具體水平 (唯一值) 用于構(gòu)建多重。否則,他們將推斷鑰匙。 names︰ 列表中,默認(rèn)為無(wú)。由此產(chǎn)生的分層索引中的級(jí)的名稱。 verify_integrity︰ 布爾值、 默認(rèn) False。檢查是否新的串聯(lián)的軸包含重復(fù)項(xiàng)。這可以是相對(duì)于實(shí)際數(shù)據(jù)串聯(lián)非常昂貴。 副本︰ 布爾值、 默認(rèn) True。如果為 False,請(qǐng)不要,不必要地復(fù)制數(shù)據(jù)。 例子:1.frames = [df1, df2, df3] ? 2.result = pd.concat(frames)

2、設(shè)置索引列

df_inner.set_index('id')

3、按照特定列的值排序:

df_inner.sort_values(by=['age'])

4、按照索引列排序:

df_inner.sort_index()

5、如果prince列的值>3000,group列顯示high,否則顯示low:

df_inner['group'] = np.where(df_inner['price'] > 3000,'high','low')

6、對(duì)復(fù)合多個(gè)條件的數(shù)據(jù)進(jìn)行分組標(biāo)記

df_inner.loc[(df_inner['city'] == 'beijing') & (df_inner['price'] >= 4000), 'sign']=1

7、對(duì)category字段的值依次進(jìn)行分列,并創(chuàng)建數(shù)據(jù)表,索引值為df_inner的索引列,列名稱為category和size

pd.DataFrame((x.split('-') for x in df_inner['category']),index=df_inner.index,columns=['category','size'])

8、將完成分裂后的數(shù)據(jù)表和原df_inner數(shù)據(jù)表進(jìn)行匹配

df_inner=pd.merge(df_inner,split,right_index=True, left_index=True)

五、數(shù)據(jù)提取 主要用到的三個(gè)函數(shù):loc,iloc和ix,loc函數(shù)按標(biāo)簽值進(jìn)行提取,iloc按位置進(jìn)行提取,ix可以同時(shí)按標(biāo)簽和位置進(jìn)行提取。

1、按索引提取單行的數(shù)值

df_inner.loc[3]

2、按索引提取區(qū)域行數(shù)值

df_inner.iloc[0:5]

3、重設(shè)索引

df_inner.reset_index()

4、設(shè)置日期為索引

df_inner=df_inner.set_index('date')

5、提取4日之前的所有數(shù)據(jù)

df_inner[:'2013-01-04']

6、使用iloc按位置區(qū)域提取數(shù)據(jù)

df_inner.iloc[:3,:2] #冒號(hào)前后的數(shù)字不再是索引的標(biāo)簽名稱,而是數(shù)據(jù)所在的位置,從0開(kāi)始,前三行,前兩列

7、適應(yīng)iloc按位置單獨(dú)提起數(shù)據(jù)

df_inner.iloc[[0,2,5],[4,5]] #提取第0、2、5行,4、5列

8、使用ix按索引標(biāo)簽和位置混合提取數(shù)據(jù)

df_inner.ix[:'2013-01-03',:4] #2013-01-03號(hào)之前,前四列數(shù)據(jù)

9、判斷city列的值是否為北京

df_inner['city'].isin(['beijing'])

10、判斷city列里是否包含beijing和shanghai,然后將符合條件的數(shù)據(jù)提取出來(lái)

df_inner.loc[df_inner['city'].isin(['beijing','shanghai'])]

11、提取前三個(gè)字符,并生成數(shù)據(jù)表

pd.DataFrame(df_inner['category'].str[:3])

六、數(shù)據(jù)篩選 使用與、或、非三個(gè)條件配合大于、小于、等于對(duì)數(shù)據(jù)進(jìn)行篩選,并進(jìn)行計(jì)數(shù)和求和。

1、使用“與”進(jìn)行篩選

df_inner.loc[(df_inner['age'] > 25) & (df_inner['city'] == 'beijing'), ['id','city','age','category','gender']]

2、使用“或”進(jìn)行篩選

df_inner.loc[(df_inner['age'] > 25) | (df_inner['city'] == 'beijing'), ['id','city','age','category','gender']].sort(['age'])

3、使用“非”條件進(jìn)行篩選

df_inner.loc[(df_inner['city'] != 'beijing'), ['id','city','age','category','gender']].sort(['id'])

4、對(duì)篩選后的數(shù)據(jù)按city列進(jìn)行計(jì)數(shù)

df_inner.loc[(df_inner['city'] != 'beijing'), ['id','city','age','category','gender']].sort(['id']).city.count()

5、使用query函數(shù)進(jìn)行篩選

df_inner.query('city == ["beijing", "shanghai"]')

6、對(duì)篩選后的結(jié)果按prince進(jìn)行求和

df_inner.query('city == ["beijing", "shanghai"]').price.sum()

七、數(shù)據(jù)匯總 主要函數(shù)是groupby和pivote_table

1、對(duì)所有的列進(jìn)行計(jì)數(shù)匯總

df_inner.groupby('city').count()

2、按城市對(duì)id字段進(jìn)行計(jì)數(shù)

df_inner.groupby('city')['id'].count()

3、對(duì)兩個(gè)字段進(jìn)行匯總計(jì)數(shù)

df_inner.groupby(['city','size'])['id'].count()

4、對(duì)city字段進(jìn)行匯總,并分別計(jì)算prince的合計(jì)和均值

df_inner.groupby('city')['price'].agg([len,np.sum, np.mean])

八、數(shù)據(jù)統(tǒng)計(jì) 數(shù)據(jù)采樣,計(jì)算標(biāo)準(zhǔn)差,協(xié)方差和相關(guān)系數(shù)

1、簡(jiǎn)單的數(shù)據(jù)采樣

df_inner.sample(n=3)

2、手動(dòng)設(shè)置采樣權(quán)重

weights = [0, 0, 0, 0, 0.5, 0.5]

df_inner.sample(n=2, weights=weights)

3、采樣后不放回

df_inner.sample(n=6, replace=False)

4、采樣后放回

df_inner.sample(n=6, replace=True)

5、 數(shù)據(jù)表描述性統(tǒng)計(jì)

df_inner.describe().round(2).T #round函數(shù)設(shè)置顯示小數(shù)位,T表示轉(zhuǎn)置

6、計(jì)算列的標(biāo)準(zhǔn)差

df_inner['price'].std()

7、計(jì)算兩個(gè)字段間的協(xié)方差

df_inner['price'].cov(df_inner['m-point'])

8、數(shù)據(jù)表中所有字段間的協(xié)方差

df_inner.cov()

9、兩個(gè)字段的相關(guān)性分析

df_inner['price'].corr(df_inner['m-point']) #相關(guān)系數(shù)在-1到1之間,接近1為正相關(guān),接近-1為負(fù)相關(guān),0為不相關(guān)

10、數(shù)據(jù)表的相關(guān)性分析

df_inner.corr()

九、數(shù)據(jù)輸出 1.分析后的數(shù)據(jù)可以輸出為xlsx格式和csv格式1、寫(xiě)入Excel

df_inner.to_excel('excel_to_python.xlsx', sheet_name='bluewhale_cc')

2、寫(xiě)入到CSV

df_inner.to_csv('excel_to_python.csv')

十、數(shù)據(jù)可視化

數(shù)據(jù)的可是化,用柱狀圖,扇形圖,折線圖來(lái)進(jìn)行展示,更加直觀的展現(xiàn)

df_inner.polt(kind='bar') # 柱狀圖

df_inner.polt(kind='line') # 折線圖

df_inner.polt(kind='area') # 面積圖

df_inner.polt(kind='pie ') # 餅狀圖

df_inner.polt(kind='scatter') # 散點(diǎn)圖

df_inner.polt(kind='hist ') # 直方圖

df_inner.polt(kind='hexbin') # 蜂巢圖

df_inner.polt(kind='bar',stacked=True) # 堆疊圖

柚子快報(bào)激活碼778899分享:pandas學(xué)習(xí)這些就夠了

http://yzkb.51969.com/

精彩文章

評(píng)論可見(jiàn),查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19582851.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問(wèn)

文章目錄