最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2021年02月07日 09:25:58   作者:北山啦  
這篇文章主要介紹了Pandas數(shù)據(jù)分析的一些常用小技巧,文中通過示例代碼介紹的非常詳細(xì),對大家的學(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() 會根據(jù)提供的函數(shù)對指定序列做映射。

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è)置對應(yīng)的列名。
  • col_level :如果列是MultiIndex,則使用此級別。

二維表格轉(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)式將對行和列進(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

檢查對象使用內(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開始,合并字典的操作更加簡單

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

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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python進(jìn)階collections標(biāo)準(zhǔn)庫使用示例詳解

    python進(jìn)階collections標(biāo)準(zhǔn)庫使用示例詳解

    這篇文章主要為大家介紹了python進(jìn)階collections標(biāo)準(zhǔn)庫使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Python之批量創(chuàng)建文件的實(shí)例講解

    Python之批量創(chuàng)建文件的實(shí)例講解

    今天小編就為大家分享一篇Python之批量創(chuàng)建文件的實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 用Python制作mini翻譯器的實(shí)現(xiàn)示例

    用Python制作mini翻譯器的實(shí)現(xiàn)示例

    這篇文章主要介紹了用Python制作mini翻譯器的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Python中pandas groupby()用法案例詳解

    Python中pandas groupby()用法案例詳解

    groupby()函數(shù)是pandas庫中一個(gè)非常強(qiáng)大的工具,它允許我們按照一個(gè)或多個(gè)特征對數(shù)據(jù)進(jìn)行分組,并對每個(gè)組進(jìn)行聚合、轉(zhuǎn)換和過濾操作,本文將探討pandas庫中非常強(qiáng)大的groupby()函數(shù),感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • 淺談python類屬性的訪問、設(shè)置和刪除方法

    淺談python類屬性的訪問、設(shè)置和刪除方法

    下面小編就為大家?guī)硪黄獪\談python類屬性的訪問、設(shè)置和刪除方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-07-07
  • Python學(xué)習(xí)之12個(gè)常用基礎(chǔ)語法詳解

    Python學(xué)習(xí)之12個(gè)常用基礎(chǔ)語法詳解

    這篇文章主要為大家介紹了12個(gè)Python小案例,包含了日常開發(fā)中非常實(shí)用的語法,快來跟隨小編一起學(xué)習(xí)一下,看看自己都會多少個(gè)呢
    2022-02-02
  • 基于python-opencv3實(shí)現(xiàn)圖像顯示和保存操作

    基于python-opencv3實(shí)現(xiàn)圖像顯示和保存操作

    這篇文章主要介紹了基于python opencv3的圖像顯示和保存操作方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-06-06
  • Python實(shí)現(xiàn)去除Excel重復(fù)數(shù)據(jù)并統(tǒng)計(jì)重復(fù)次數(shù)

    Python實(shí)現(xiàn)去除Excel重復(fù)數(shù)據(jù)并統(tǒng)計(jì)重復(fù)次數(shù)

    這篇文章主要為大家詳細(xì)介紹了如何利用Python語言實(shí)現(xiàn)文本數(shù)據(jù)去重,創(chuàng)建包含唯一值的新列,并統(tǒng)計(jì)文本數(shù)據(jù)出現(xiàn)的次數(shù),需要的可以參考下
    2023-08-08
  • 深入理解Django自定義信號(signals)

    深入理解Django自定義信號(signals)

    這篇文章主要介紹了深入理解Django自定義信號(signals),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-10-10
  • 在python項(xiàng)目的docker鏡像里如何使用pdm管理依賴

    在python項(xiàng)目的docker鏡像里如何使用pdm管理依賴

    在 DjangoStarter 項(xiàng)目中,我已經(jīng)使用 pdm 作為默認(rèn)的包管理器,不再直接使用 pip,所以部署的時(shí)候 dockerfile 和 docker-compose 配置需要修改一下,這篇文章主要介紹了在python項(xiàng)目的docker鏡像里使用pdm管理依賴,需要的朋友可以參考下
    2024-08-08

最新評論

东港市| 咸丰县| 英山县| 东海县| 博客| 济阳县| 五家渠市| 北京市| 沧州市| 卓资县| 图木舒克市| 宝山区| 临江市| 左权县| 班玛县| 云浮市| 林周县| 上犹县| 巴马| 扶风县| 湖南省| 循化| 衡水市| 嘉义县| 平原县| 威宁| 西贡区| 玛多县| 洪江市| 太谷县| 平昌县| 南开区| 安福县| 牟定县| 梅河口市| 红河县| 晋城| 石门县| 潮州市| 阜阳市| 霍邱县|