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

Pandas數(shù)據(jù)分析的一些常用小技巧

 更新時(shí)間:2021年02月07日 09:25:58   作者:北山啦  
這篇文章主要介紹了Pandas數(shù)據(jù)分析的一些常用小技巧,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

Pandas小技巧

import pandas as pd

pandas生成數(shù)據(jù)

d = {"sex": ["male", "female", "male", "female"],
 "color": ["red", "green", "blue", "yellow"],
 "age": [12, 56, 21, 31]}
df = pd.DataFrame(d)
df

sex color age
0 male red 12
1 female green 56
2 male blue 21
3 female yellow 31

數(shù)據(jù)替換–map映射

map() 會(huì)根據(jù)提供的函數(shù)對(duì)指定序列做映射。

map(function, iterable, …)

  • function – 函數(shù)
  • iterable – 一個(gè)或多個(gè)序列
d = {"male": 1, "female": 0}
df["gender"] = df["sex"].map(d)
df

sex color age gender
0 male red 12 1
1 female green 56 0
2 male blue 21 1
3 female yellow 31 0

數(shù)據(jù)清洗–replace和正則

分享pandas數(shù)據(jù)清洗技巧,在某列山使用replace和正則快速完成值的清洗

d = {"customer": ["A", "B", "C", "D"],
 "sales": [1000, "950.5RMB", "$400", "$1250.75"]}
df = pd.DataFrame(d)
df

customer sales
0 A 1000
1 B 950.5RMB
2 C $400
3 D $1250.75

sales列的數(shù)據(jù)類型不同意,為后續(xù)分析,所以需要將他的格式同統(tǒng)一

df["sales"] = df["sales"].replace("[$,RMB]", "", regex=True).astype("float")
df

customer sales
0 A 1000.00
1 B 950.50
2 C 400.00
3 D 1250.75

查看數(shù)據(jù)類型

df["sales"].apply(type)

0    <class 'float'>
1    <class 'float'>
2    <class 'float'>
3    <class 'float'>
Name: sales, dtype: object

數(shù)據(jù)透視表分析–melt函數(shù)

melt是逆轉(zhuǎn)操作函數(shù),可以將列名轉(zhuǎn)換為列數(shù)據(jù)(columns name → column values),重構(gòu)DataFrame,用法如下:

參數(shù)說明:

pandas.melt(frame, id_vars=None, value_vars=None, var_name=None, value_name=‘value', col_level=None)

  • frame:要處理的數(shù)據(jù)集。
  • id_vars:不需要被轉(zhuǎn)換的列名。
  • value_vars:需要轉(zhuǎn)換的列名,如果剩下的列全部都要轉(zhuǎn)換,就不用寫了。
  • var_name和value_name是自定義設(shè)置對(duì)應(yīng)的列名。
  • col_level :如果列是MultiIndex,則使用此級(jí)別。

二維表格轉(zhuǎn)成一維表格

d = {"district_code": [12345, 56789, 101112, 131415],
 "apple": [5.2, 2.4, 4.2, 3.6],
 "banana": [3.5, 1.9, 4.0, 2.3],
 "orange": [8.0, 7.5, 6.4, 3.9]
 }
df = pd.DataFrame(d)
df

district_code apple banana orange
0 12345 5.2 3.5 8.0
1 56789 2.4 1.9 7.5
2 101112 4.2 4.0 6.4
3 131415 3.6 2.3 3.9

df = df.melt(id_vars="district_code",
  var_name="fruit_name",
  value_name="price")
df

district_code fruit_name price
0 12345 apple 5.2
1 56789 apple 2.4
2 101112 apple 4.2
3 131415 apple 3.6
4 12345 banana 3.5
5 56789 banana 1.9
6 101112 banana 4.0
7 131415 banana 2.3
8 12345 orange 8.0
9 56789 orange 7.5
10 101112 orange 6.4
11 131415 orange 3.9

將分類中出現(xiàn)次數(shù)較少的值歸為others

d = {"name": ['Jone', 'Alica', 'Emily', 'Robert', 'Tomas',
  'Zhang', 'Liu', 'Wang', 'Jack', 'Wsx', 'Guo'],
 "categories": ["A", "C", "A", "D", "A",
   "B", "B", "C", "A", "E", "F"]}
df = pd.DataFrame(d)
df

name categories
0 Jone A
1 Alica C
2 Emily A
3 Robert D
4 Tomas A
5 Zhang B
6 Liu B
7 Wang C
8 Jack A
9 Wsx E
10 Guo F

D、E、F 僅在分類中出現(xiàn)一次,A 出現(xiàn)次數(shù)較多。

統(tǒng)計(jì)出現(xiàn)次數(shù),并標(biāo)準(zhǔn)化

frequencies = df["categories"].value_counts(normalize=True)
frequencies

A    0.363636
B    0.181818
C    0.181818
E    0.090909
D    0.090909
F    0.090909
Name: categories, dtype: float64

設(shè)定閾值

threshold = 0.1
small_categories = frequencies[frequencies < threshold].index
small_categories
Index(['E', 'D', 'F'], dtype='object')

替換

df["categories"] = df["categories"].replace(small_categories, "Others")
df

name categories
0 Jone A
1 Alica C
2 Emily A
3 Robert Others
4 Tomas A
5 Zhang B
6 Liu B
7 Wang C
8 Jack A
9 Wsx Others
10 Guo Others

Python小技巧

列表推導(dǎo)式

例如,假設(shè)我們想創(chuàng)建一個(gè)正方形列表,例如

squares = []
for x in range(10):
 squares.append(x**2)
squares

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

squares = list(map(lambda x: x**2, range(10)))
squares

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

squares = [x**2 for x in range(10)]
squares

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

同時(shí)還可以利用if來過濾列表

[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]

[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

列表推導(dǎo)式可以包含復(fù)雜表達(dá)式和嵌套函數(shù)

from math import pi
[str(round(pi, i)) for i in range(1, 6)]

['3.1', '3.14', '3.142', '3.1416', '3.14159']

列表推導(dǎo)式中的初始表達(dá)式可以是任意表達(dá)式,包括另一個(gè)列表推導(dǎo)式。

下面的列表推導(dǎo)式將對(duì)行和列進(jìn)行轉(zhuǎn)置

matrix = [
 [1, 2, 3, 4],
 [5, 6, 7, 8],
 [9, 10, 11, 12],
]
[[row[i] for row in matrix] for i in range(4)]

[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]

交換變量

a = 1
b = 2
a, b = b, a
print("a = ",a)
print("b = ",b)

a =  2
b =  1

檢查對(duì)象使用內(nèi)存情況

sys.getsizeof()

range()函數(shù)返回的是一個(gè)類,在使用內(nèi)存方面,range遠(yuǎn)比實(shí)際的數(shù)字列表更加高效

import sys
mylist = range(1,10000)
print(sys.getsizeof(mylist))

48

合并字典

從Python3.5開始,合并字典的操作更加簡(jiǎn)單

如果key重復(fù),那么第一個(gè)字典的key會(huì)被覆蓋

d1 ={"a":1,"b":2}
d2 = {"b":2,"c":4}
m = {**d1,**d2}
print(m)

{'a': 1, 'b': 2, 'c': 4}

字符串分割成列表

string = "the author is beishanla"
s = string.split(" ")
s

['the', 'author', 'is', 'beishanla']

字符串列表創(chuàng)建字符串

l = ["the","author","is","beishanla"]
l = " ".join(l)
l

'the author is beishanla'

Python查看圖片

pip install Pillow
from PIL import Image
im = Image.open("E:/Python/00網(wǎng)絡(luò)爬蟲/Project/詞云圖跳舞視頻/aip-python-sdk-4.15.1/pictures/img_88.jpg")
im.show()
print(im.format,im.size,im.mode)

JPEG (1920, 1080) RGB

歡迎搜藏,持續(xù)更新

總結(jié)

到此這篇關(guān)于Pandas數(shù)據(jù)分析的一些常用小技巧的文章就介紹到這了,更多相關(guān)Pandas數(shù)據(jù)分析技巧內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談python3 構(gòu)造函數(shù)和析構(gòu)函數(shù)

    淺談python3 構(gòu)造函數(shù)和析構(gòu)函數(shù)

    這篇文章主要介紹了淺談python3 構(gòu)造函數(shù)和析構(gòu)函數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • 在Python中使用第三方模塊的教程

    在Python中使用第三方模塊的教程

    這篇文章主要介紹了在Python中使用第三方模塊的教程,是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-04-04
  • CentOS下Python3的安裝及創(chuàng)建虛擬環(huán)境的方法

    CentOS下Python3的安裝及創(chuàng)建虛擬環(huán)境的方法

    這篇文章主要介紹了CentOS下Python3的安裝及創(chuàng)建虛擬環(huán)境的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-11-11
  • python文件操作整理匯總

    python文件操作整理匯總

    本文主要記錄了個(gè)人在項(xiàng)目中遇到的一些Python中對(duì)于文件、文件夾的操作需要涉及到的函數(shù)等內(nèi)容,非常的詳盡,有需要的可以參考下
    2014-10-10
  • PyTorch加載模型model.load_state_dict()問題及解決

    PyTorch加載模型model.load_state_dict()問題及解決

    這篇文章主要介紹了PyTorch加載模型model.load_state_dict()問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2023-02-02
  • Python中index()函數(shù)與find()函數(shù)的區(qū)別詳解

    Python中index()函數(shù)與find()函數(shù)的區(qū)別詳解

    這篇文章主要介紹了Python中index()函數(shù)與find()函數(shù)的區(qū)別詳解,Python index()方法檢測(cè)字符串中是否包含子字符串 str ,如果指定beg開始和end結(jié)束范圍,則檢查是否包含在指定范圍內(nèi),需要的朋友可以參考下
    2023-08-08
  • python 動(dòng)態(tài)獲取當(dāng)前運(yùn)行的類名和函數(shù)名的方法

    python 動(dòng)態(tài)獲取當(dāng)前運(yùn)行的類名和函數(shù)名的方法

    這篇文章主要介紹了python 動(dòng)態(tài)獲取當(dāng)前運(yùn)行的類名和函數(shù)名的方法,分別介紹使用內(nèi)置方法、sys模塊、修飾器、inspect模塊等方法,需要的朋友可以參考下
    2014-04-04
  • 基于Python實(shí)現(xiàn)千圖成像工具的示例代碼

    基于Python實(shí)現(xiàn)千圖成像工具的示例代碼

    千圖成像也就是用N張圖片組成一張圖片的效果。這篇文章將利用Python語(yǔ)言編寫一個(gè)簡(jiǎn)單的千圖成像工具,感興趣的小伙伴可以了解一下
    2022-07-07
  • Python requests設(shè)置代理的方法步驟

    Python requests設(shè)置代理的方法步驟

    這篇文章主要介紹了Python requests設(shè)置代理的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Python百度指數(shù)獲取腳本下載并保存

    Python百度指數(shù)獲取腳本下載并保存

    這篇文章主要介紹了Python百度指數(shù)獲取腳本下載并保存,基于原有的可以對(duì)百度指數(shù)進(jìn)行爬蟲的腳本做一個(gè)可直接返回pd.DataFrame的數(shù)據(jù)框的類加上可視化代碼完成,需要的朋友可以參考一下
    2022-06-06

最新評(píng)論