欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

10招!看骨灰級(jí)Pythoner玩轉(zhuǎn)Python的方法

 更新時(shí)間:2019年04月15日 09:01:10   作者:讀芯術(shù)  
這篇文章主要介紹了10招!看骨灰級(jí)Pythoner如何玩轉(zhuǎn)Python,需要的朋友可以參考下

pandas是基于numpy構(gòu)建的,使數(shù)據(jù)分析工作變得更快更簡(jiǎn)單的高級(jí)數(shù)據(jù)結(jié)構(gòu)和操作工具。本文為大家?guī)?0個(gè)玩轉(zhuǎn)Python的小技巧,學(xué)會(huì)了分分鐘通關(guān)變大神!

1. read_csv

每個(gè)人都知道這個(gè)命令。但如果你要讀取很大的數(shù)據(jù),嘗試添加這個(gè)參數(shù):nrows = 5,以便在實(shí)際加載整個(gè)表之前僅讀取表的一小部分。然后你可以通過選擇錯(cuò)誤的分隔符來避免錯(cuò)誤(它不一定總是以逗號(hào)分隔)。

(或者,你可以在linux中使用'head'命令來檢查任何文本文件中的前5行,例如:head -c 5 data.txt)

然后,你可以使用df.columns.tolist()來提取列表中的所有列,然后添加usecols = ['c1','c2',...]參數(shù)以加載所需的列。此外,如果你知道幾個(gè)特定列的數(shù)據(jù)類型,則可以添加參數(shù)dtype = {'c1':str,'c2':int,...},以便數(shù)據(jù)加載得更快。此參數(shù)還有另一個(gè)優(yōu)點(diǎn),如果你有一個(gè)同時(shí)包含字符串和數(shù)字的列,那么將其類型聲明為字符串是一個(gè)好選擇,這樣就可以在嘗試使用此列作為鍵去合并表時(shí)不會(huì)出錯(cuò)。

2. select_dtypes

如果必須在Python中進(jìn)行數(shù)據(jù)預(yù)處理,那么這個(gè)命令可以節(jié)約一些時(shí)間。讀取表后,每列的默認(rèn)數(shù)據(jù)類型可以是bool,int64,float64,object,category,timedelta64或datetime64。你可以先查看

df.dtypes.value_counts()

命令分發(fā)的結(jié)果以了解數(shù)據(jù)幀的所有可能數(shù)據(jù)類型,然后執(zhí)行

df.select_dtypes(include = ['float64','int64'])

選擇僅具有數(shù)字特征的子數(shù)據(jù)幀。

3. Copy

這是一個(gè)重要的命令。如果執(zhí)行以下命令:

import pandas as pd 
df1 = pd.DataFrame({ ‘a(chǎn)':[0,0,0], ‘b': [1,1,1]}) 
df2 = df1 
df2[‘a(chǎn)'] = df2[‘a(chǎn)'] + 1 
df1.head() 

你會(huì)發(fā)現(xiàn)df1已經(jīng)改變了。這是因?yàn)閐f2 = df1沒有復(fù)制df1的值并將其分配給df2,而是設(shè)置指向df1的指針。因此,df2的任何變化都會(huì)導(dǎo)致df1發(fā)生變化 要解決這個(gè)問題,你可以:

df2  
= df1.copy() 
br 

或者

from copy import deepcopy 
df2 = deepcopy(df1) 

4. Map

這是一個(gè)可以進(jìn)行簡(jiǎn)單數(shù)據(jù)轉(zhuǎn)換的命令。首先定義一個(gè)字典,其中'keys'是舊值,'values'是新值。

level_map = {1: ‘high', 2: ‘medium', 3: ‘low'} 
df[‘c_level'] = df[‘c'].map(level_map) 

舉幾個(gè)例子:True,F(xiàn)alse為1,0(用于建模); 定義水平; 用戶定義的詞法編碼。

5. apply or not apply?

如果我們想創(chuàng)建一個(gè)新的列,并將其他列作為輸入,那么apply函數(shù)有時(shí)非常有用。

def rule(x, y): 
  if x == ‘high' and y > 10: 
     return 1 
  else: 
     return 0 
df = pd.DataFrame({ 'c1':[ 'high' ,'high', 'low', 'low'], 'c2': [0, 23, 17, 4]}) 
df['new'] = df.apply(lambda x: rule(x['c1'], x['c2']), axis = 1) 
df.head()

在上面的代碼中,我們定義了一個(gè)帶有兩個(gè)輸入變量的函數(shù),并使用apply函數(shù)將其應(yīng)用于列'c1'和'c2'。

但“apply函數(shù)”的問題是它有時(shí)太慢了。 如果你想計(jì)算兩列“c1”和“c2”的最大值,你可以:

df[‘maximum'] = df.apply(lambda x: max(x[‘c1'], x[‘c2']), axis = 1)

但你會(huì)發(fā)現(xiàn)它比這個(gè)命令慢得多:

df[‘maximum'] = df[[‘c1','c2']].max(axis =1)

注意:如果可以使用其他內(nèi)置函數(shù)完成相同的工作(它們通常更快),請(qǐng)不要使用apply。例如,如果要將列'c'舍入為整數(shù),請(qǐng)執(zhí)行round(df ['c'],0)而非使用apply函數(shù):

df.apply(lambda x: round(x['c'], 0), axis = 1)

6. value counts

這是一個(gè)檢查值分布的命令。例如,如果你想檢查“c”列中每個(gè)值的可能值和頻率,可以執(zhí)行以下操作

df[‘c'].value_counts()

它有一些有用的技巧/參數(shù):

A. normalize = True:如果你要檢查頻率而不是計(jì)數(shù)。

B. dropna = False:如果你要統(tǒng)計(jì)數(shù)據(jù)中包含的缺失值。

C. df['c'].value_counts().reset_index():  如果你想將stats表轉(zhuǎn)換成pandas數(shù)據(jù)幀并進(jìn)行操作。

D. df['c'].value_counts().reset_index().sort_values(by='index') : 顯示按值而不是按計(jì)數(shù)排序的統(tǒng)計(jì)數(shù)據(jù)。

7. 缺失值的數(shù)量

構(gòu)建模型時(shí),你可能希望排除具有很多缺失值或全是缺失值的行。你可以使用.isnull()和.sum()來計(jì)算指定列中缺失值的數(shù)量。

import pandas as pd 
import numpy as np 
df = pd.DataFrame({ ‘id': [1,2,3], ‘c1':[0,0,np.nan], ‘c2': [np.nan,1,1]}) 
dfdf = df[[‘id', ‘c1', ‘c2']] 
df[‘num_nulls'] = df[[‘c1', ‘c2']].isnull().sum(axis=1) 
df.head()

8. 選擇具有特定ID的行

在SQL中,我們可以使用SELECT * FROM ... WHERE ID('A001','C022',...)來獲取具有特定ID的記錄。如果想用Pandas做同樣的事情,你可以

dfdf_filter = df[‘ID'].isin([‘A001',‘C022',...]) 
df[df_filter] 

9. Percentile groups

你有一個(gè)數(shù)字列,并希望將該列中的值分類為組,例如將列的前5%,分為組1,前5-20%分為組2,前20%-50%分為組3,最后50%分為組4。當(dāng)然,你可以用pandas.cut來做,但這里提供另一個(gè)選擇:

import numpy as np 
cut_points = [np.percentile(df[‘c'], i) for i in [50, 80, 95]] 
df[‘group'] = 1 
for i in range(3): 
  df[‘group'] = df[‘group'] + (df[‘c'] < cut_points[i]) 
# or <= cut_points[i]

這個(gè)指令使計(jì)算機(jī)運(yùn)行的非常快(沒有使用應(yīng)用功能)。

10. to_csv

這也是每個(gè)人都會(huì)使用的命令。這里指出兩個(gè)技巧。 第一個(gè)是

print(df[:5].to_csv())

你可以使用此命令準(zhǔn)確地打印出寫入文件的前五行數(shù)據(jù)。

另一個(gè)技巧是處理混合在一起的整數(shù)和缺失值。如果列同時(shí)包含缺失值和整數(shù),則數(shù)據(jù)類型仍將是float而不是int。導(dǎo)出表時(shí),可以添加float_format ='%。0f'將所有浮點(diǎn)數(shù)舍入為整數(shù)。如果只想要所有列的整數(shù)輸出,請(qǐng)使用此技巧,你將擺脫所有令人苦惱的'.0'。

總結(jié)

以上所述是小編給大家介紹的10招!看骨灰級(jí)Pythoner玩轉(zhuǎn)Python的方法 ,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

  • Python一階馬爾科夫鏈生成隨機(jī)DNA序列實(shí)現(xiàn)示例

    Python一階馬爾科夫鏈生成隨機(jī)DNA序列實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了Python實(shí)現(xiàn)一階馬爾科夫鏈生成隨機(jī)DNA序列示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 淺談python中set使用

    淺談python中set使用

    下面小編就為大家?guī)硪黄獪\談python中set使用。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-06-06
  • python將處理好的圖像保存到指定目錄下的方法

    python將處理好的圖像保存到指定目錄下的方法

    今天小編就為大家分享一篇python將處理好的圖像保存到指定目錄下的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • anaconda中更改python版本的方法步驟

    anaconda中更改python版本的方法步驟

    這篇文章主要介紹了anaconda中更改python版本的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 深入理解Python裝飾器

    深入理解Python裝飾器

    裝飾器(decorator)是一種高級(jí)Python語法。裝飾器可以對(duì)一個(gè)函數(shù)、方法或者類進(jìn)行加工。這篇文章主要介紹了深入理解Python裝飾器的相關(guān)資料,需要的朋友可以參考下
    2016-07-07
  • python入門前的第一課 python怎樣入門

    python入門前的第一課 python怎樣入門

    人工智能這么火,0基礎(chǔ)能學(xué)python嗎?python該怎么選擇編輯器?怎么搭建python運(yùn)行環(huán)境?python好學(xué)嗎,怎么學(xué)?這是所有python入門前同學(xué)都會(huì)提出的疑問,這篇文章和大家一起學(xué)習(xí)python,感興趣的小伙伴們可以加入
    2018-03-03
  • 用python的turtle模塊實(shí)現(xiàn)給女票畫個(gè)小心心

    用python的turtle模塊實(shí)現(xiàn)給女票畫個(gè)小心心

    今天小編就為大家分享一篇用python的turtle模塊實(shí)現(xiàn)給女票畫個(gè)小心心,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • pytorch 中pad函數(shù)toch.nn.functional.pad()的用法

    pytorch 中pad函數(shù)toch.nn.functional.pad()的用法

    今天小編就為大家分享一篇pytorch 中pad函數(shù)toch.nn.functional.pad()的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python pip替換為阿里源的方法步驟

    Python pip替換為阿里源的方法步驟

    這篇文章主要介紹了Python pip替換為阿里源的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python使用redis pool的一種單例實(shí)現(xiàn)方式

    Python使用redis pool的一種單例實(shí)現(xiàn)方式

    這篇文章主要介紹了Python使用redis pool的一種單例實(shí)現(xiàn)方式,結(jié)合實(shí)例形式分析了Python操作redis模塊實(shí)現(xiàn)共享同一個(gè)連接池的相關(guān)技巧,需要的朋友可以參考下
    2016-04-04

最新評(píng)論