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

Pandas如何獲取數(shù)據(jù)的尺寸信息

 更新時(shí)間:2024年02月23日 09:38:57   作者:勤奮的大熊貓  
這篇文章主要介紹了Pandas如何獲取數(shù)據(jù)的尺寸信息問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Pandas獲取數(shù)據(jù)的尺寸信息

Pandas中獲取數(shù)據(jù)的尺寸信息,比如我們有如下的Excel數(shù)據(jù):

在這里插入圖片描述

我們可以使用如下代碼來(lái)獲取數(shù)據(jù)的整體尺寸信息:

import pandas as pd

file = pd.read_excel(r"C:\Users\15025\Desktop\uncle\debug.xlsx")
print(file.size)
print(file.shape)
print(len(file))
"""
result:
55
(11, 5)
11
"""

可以看到,結(jié)果與numpy包中的結(jié)果類(lèi)似,當(dāng)我們的數(shù)據(jù)為二維時(shí),使用size獲取到的是數(shù)據(jù)的整體大小,為行數(shù)量11乘以列數(shù)量5。

當(dāng)我們使用shape時(shí),獲取到的是二維數(shù)據(jù)行數(shù)量與列數(shù)量組成的一個(gè)元組(11, 5)

當(dāng)我們使用len()函數(shù)作用于二維數(shù)據(jù)時(shí),我們獲得的是行數(shù)量。

當(dāng)數(shù)據(jù)為一維時(shí),我們使用len()函數(shù)獲取的結(jié)果將會(huì)與使用size獲取到的結(jié)果一致。

pandas處理大數(shù)據(jù)信息

使用到的數(shù)據(jù)大小為130M

5 rows × 161 columns

g1.shape
#(171907, 161)
#17W的數(shù)據(jù),有161列

pandas 可以處理幾千萬(wàn),上億的數(shù)據(jù)

打印出每種類(lèi)型占的內(nèi)存量

for dtype in ['float64','int64','object']:
    selected_dtype = g1.select_dtypes(include = [dtype])
    mean_usage_b = selected_dtype.memory_usage(deep=True).mean()
    mean_usage_mb = mean_usage_b/1024**2
    print('平均內(nèi)存占用 ',dtype , mean_usage_mb)
'''
deep : bool,默認(rèn)為False
如果為T(mén)rue,則通過(guò)詢(xún)問(wèn)對(duì)象 dtype
來(lái)深入了解數(shù)據(jù) 的系統(tǒng)級(jí)內(nèi)存消耗,
并將其包含在返回值中。
'''

讓內(nèi)存占用變小,int 類(lèi)型從64 變?yōu)?32,在不影響使用的前提下

#查看每種類(lèi)型最大 能表示多大的數(shù)
int_types = ['uint8','int8','int16','int32','int64']
for it in int_types:
    print(np.iinfo(it))
g1_int = g1.select_dtypes(include = ['int64'])
#生成一個(gè)只有int類(lèi)型的DataFrame
coverted_int = g1_int.apply(pd.to_numeric, downcast='unsigned')
#apply 會(huì)將數(shù)據(jù)一條一條的讀取,并傳入目標(biāo)進(jìn)行執(zhí)行
#int64 轉(zhuǎn)換為了 unsigned
g1_float = g1.select_dtypes(include = ['float64'])
#生成一個(gè)只有int類(lèi)型的DataFrame
coverted_floar = g1_int.apply(pd.to_numeric, downcast='float')
#apply 會(huì)將數(shù)據(jù)一條一條的讀取,并傳入目標(biāo)進(jìn)行執(zhí)行
#float64轉(zhuǎn)換為了32
import pandas as pd
g1 = pd.read_csv('game_logs.csv')
g1_obj = g1.select_dtypes(include = ['object'])
g1.shape
#(171907, 78)
g1_obj.describe()
#查看信息生成的介紹
#count 數(shù)量
#unique	 不重復(fù)的值
#top   
#freq
dow = g1_obj.day_of_week
dow_cat = dow.astype('category')
dow_cat.head()

優(yōu)化str占用內(nèi)存

converted_obj = pd.DataFrame()

for col in g1_obj.columns:
    num_unique_values = len(g1_obj[col].unique())
    num_total_values= len(g1_obj[col])
    if num_unique_values / num_total_values < 0.5:
        converted_obj.loc[:,col] = g1_obj[col].astype('category')
    else:
        converted_obj.loc[:,col] = g1_obj[col]
#時(shí)間格式,寫(xiě)成標(biāo)準(zhǔn)格式的是比較占用內(nèi)存的
#可以轉(zhuǎn)換時(shí)間格式
g1['date'] = pd.to_datetime(date,format='%Y%m%d')
#這種比較占用內(nèi)存

結(jié)果:

def mem_usage(pandas_obj):
    if isinstance(pandas_obj,pd.DataFrame):
        usage_b = pandas_obj.memory_usage(deep=True).sum()
    else:
        usage_b = pandas_obj.memory_usagee(deep=True)
    
    usage_mb = usage_b/1024**2
    return '{:03.2f} MB'.format(usage_mb)

g1_int = g1.select_dtypes(include = ['int64'])
#生成一個(gè)只有int類(lèi)型的DataFrame
coverted_int = g1_int.apply(pd.to_numeric, downcast='unsigned')
#apply 會(huì)將數(shù)據(jù)一條一條的讀取,并傳入目標(biāo)進(jìn)行執(zhí)行
#int64 轉(zhuǎn)換為了 unsigned
print(mem_usage(g1_int))
print(mem_usage(coverted_int))

7.87 MB

1.48 MB

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于python編寫(xiě)的五個(gè)拿來(lái)就能用的炫酷表白代碼分享

    基于python編寫(xiě)的五個(gè)拿來(lái)就能用的炫酷表白代碼分享

    七夕快到了,所以本文小編將給給大家介紹五種拿來(lái)就能用的炫酷表白代碼,無(wú)限彈窗表白,愛(ài)心發(fā)射,心動(dòng)表白,玫瑰花等表白代碼,需要的小伙伴快來(lái)試試吧
    2023-08-08
  • 在?Python?中使用變量創(chuàng)建文件名的方法

    在?Python?中使用變量創(chuàng)建文件名的方法

    這篇文章主要介紹了在?Python?中使用變量創(chuàng)建文件名,格式化的字符串文字使我們能夠通過(guò)在字符串前面加上 f 來(lái)在字符串中包含表達(dá)式和變量,本文給大家詳細(xì)講解,需要的朋友可以參考下
    2023-03-03
  • django中使用memcached示例詳解

    django中使用memcached示例詳解

    這篇文章主要為大家介紹了django中使用memcached示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • pytorch框架的詳細(xì)介紹與應(yīng)用詳解

    pytorch框架的詳細(xì)介紹與應(yīng)用詳解

    這篇文章主要介紹了pytorch框架的詳細(xì)介紹與應(yīng)用,Torch?是一個(gè)經(jīng)典的對(duì)多維矩陣數(shù)據(jù)進(jìn)行操作的張量(tensor?)庫(kù),在機(jī)器學(xué)習(xí)和其他數(shù)學(xué)密集型應(yīng)用有廣泛應(yīng)用,本文給大家詳細(xì)講解,需要的朋友可以參考下
    2023-04-04
  • Python多進(jìn)程機(jī)制實(shí)例詳解

    Python多進(jìn)程機(jī)制實(shí)例詳解

    這篇文章主要介紹了Python多進(jìn)程機(jī)制,以實(shí)例形式詳細(xì)分析了Python多進(jìn)程機(jī)制的原理與實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-07-07
  • tensorflow常用函數(shù)API介紹

    tensorflow常用函數(shù)API介紹

    這篇文章主要介紹了tensorflow常用函數(shù)API介紹,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 簡(jiǎn)單總結(jié)Python中序列與字典的相同和不同之處

    簡(jiǎn)單總結(jié)Python中序列與字典的相同和不同之處

    這篇文章主要介紹了Python中序列與字典的相同和不同之處,序列這里講到Python中最常用的列表和元組以及字典三種,需要的朋友可以參考下
    2016-01-01
  • Python 時(shí)間處理datetime實(shí)例

    Python 時(shí)間處理datetime實(shí)例

    Python Cook書(shū)中有很多章節(jié)都是針對(duì)某個(gè)庫(kù)的使用進(jìn)行介紹或是通過(guò)組合多個(gè)函數(shù)實(shí)現(xiàn)一些復(fù)雜的功能。我這里直接跳過(guò)了上一章節(jié)中對(duì)于文件處理的一些章節(jié),直接進(jìn)入對(duì)時(shí)間操作的章節(jié)。
    2008-09-09
  • python drf各類(lèi)組件的用法和作用

    python drf各類(lèi)組件的用法和作用

    這篇文章主要介紹了python drf各類(lèi)組件的用法和作用,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2021-01-01
  • Python實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)采集新型冠狀病毒數(shù)據(jù)實(shí)例

    Python實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)采集新型冠狀病毒數(shù)據(jù)實(shí)例

    在本篇文章里小編給大家整理了關(guān)于Python實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)采集新型冠狀病毒數(shù)據(jù)實(shí)例內(nèi)容,有需要的朋友們可以學(xué)習(xí)參考下。
    2020-02-02

最新評(píng)論

光山县| 宾阳县| 仙居县| 肥东县| 芦山县| 库尔勒市| 蚌埠市| 铁力市| 西乌| 轮台县| 莫力| 泸西县| 璧山县| 杂多县| 壤塘县| 通许县| 本溪市| 商洛市| 邛崃市| 宜兴市| 文山县| 册亨县| 海安县| 收藏| 大新县| 滦南县| 凌云县| 杭锦旗| 冕宁县| 苍山县| 云阳县| 辽阳市| 玉龙| 彰化市| 乐清市| 重庆市| 诏安县| 新乡市| 平罗县| 汪清县| 绥芬河市|