日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

眾所周知,SQL和Pandas是數(shù)據(jù)科學(xué)領(lǐng)域常用工具,精通這兩大工具對(duì)數(shù)據(jù)科學(xué)家來(lái)說(shuō)極有價(jià)值。而最近,又有一個(gè)新的工具庫(kù)——「Polars」也開(kāi)始受到青睞。

一個(gè)閃電般快速的 DataFrame 處理庫(kù),完美替代 Pandas

Polars簡(jiǎn)介

Polars是一個(gè)快速的DataFrame庫(kù),旨在提供快速高效的數(shù)據(jù)處理能力,允許您在不影響性能的情況下處理大型數(shù)據(jù)集。同時(shí),它解決了Pandas的一些限制:

  • Pandas主要依賴于一個(gè)CPU核心運(yùn)行,尤其在處理高并發(fā)任務(wù)時(shí),性能易受限制。而Polars采用「多核計(jì)算方式」,能夠更好地利用「多核CPU」,從而在處理大量數(shù)據(jù)和并發(fā)任務(wù)時(shí)表現(xiàn)出更好的性能。
  • Pandas采用的是積極執(zhí)行模式,這意味著它在處理數(shù)據(jù)時(shí)會(huì)立即執(zhí)行所有操作,而不會(huì)等待后續(xù)操作。相比之下,Polars提供了「惰性執(zhí)行模式」,在需要時(shí)才執(zhí)行操作,而不是立即執(zhí)行所有操作。這種執(zhí)行方式有助于減少不必要的計(jì)算,從而提高性能。
  • Pandas一次性創(chuàng)建整個(gè)DataFrame的對(duì)象。Polars的「DataFrame則是輕量級(jí)的」,它在創(chuàng)建DataFrame時(shí)采用了不同的策略,即只創(chuàng)建實(shí)際需要的數(shù)據(jù)對(duì)象,而不是一次性創(chuàng)建整個(gè)DataFrame。這種方法有助于減少內(nèi)存使用和提高性能。
  • Pandas在處理大型數(shù)據(jù)集時(shí)可能會(huì)遇到性能瓶頸,Polars則比較高效。

Polars使用示例

1.創(chuàng)建DataFrame

示例代碼如下。這里使用pl.DataFrame函數(shù)創(chuàng)建了一個(gè)包含三列(name、age和city)的DataFrame對(duì)象,每一列都是一個(gè)Polars的Series對(duì)象。最后打印輸出整個(gè)DataFrame。

import polars as pl

# 創(chuàng)建一個(gè)Polars的DataFrame對(duì)象
df = pl.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie'],
    'age': [25, 30, 35],
    'city': ['New York', 'San Francisco', 'London']
})

# 打印輸出DataFrame
print(df)

輸出結(jié)果:

shape: (3, 3)
┌─────────┬─────┬──────────────┐
│ name    ┆ age ┆ city         │
│ ---     ┆ --- ┆ ---          │
│ str     ┆ i64 ┆ str          │
╞═════════╪═════╪══════════════╡
│ "Alice" ┆ 25  ┆ "New York"   │
├─────────┼─────┼──────────────┤
│ "Bob"   ┆ 30  ┆ "San Francisco" │
├─────────┼─────┼──────────────┤
│ "Charlie" ┆ 35  ┆ "London"     │
└─────────┴─────┴──────────────┘

2.合并數(shù)據(jù)框

示例代碼如下。這里首先創(chuàng)建了兩個(gè)DataFrame對(duì)象(df1和df2),分別代表兩個(gè)不同的數(shù)據(jù)集。然后,使用concat函數(shù)將這兩個(gè)DataFrame對(duì)象合并為一個(gè)新的DataFrame(merged_df)。最后,打印輸出合并后的DataFrame。

import polars as pl

# 創(chuàng)建第一個(gè)DataFrame
df1 = pl.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie'],
    'age': [25, 30, 35],
    'city': ['New York', 'San Francisco', 'London']
})

# 創(chuàng)建第二個(gè)DataFrame
df2 = pl.DataFrame({
    'name': ['Dave', 'Eve', 'Frank'],
    'age': [40, 45, 50],
    'city': ['Toronto', 'Paris', 'Sydney']
})

# 合并兩個(gè)DataFrame
merged_df = df1.concat(df2)

# 打印輸出合并后的DataFrame
print(merged_df)
 
shape: (6, 3)
┌─────────┬─────┬──────────────┐
│ name    ┆ age ┆ city         │
│ ---     ┆ --- ┆ ---          │
│ str     ┆ i64 ┆ str          │
╞═════════╪═════╪══════════════╡
│ "Alice" ┆ 25  ┆ "New York"   │
├─────────┼─────┼──────────────┤
│ "Bob"   ┆ 30  ┆ "San Francisco" │
├─────────┼─────┼──────────────┤
│ "Charlie" ┆ 35  ┆ "London"     │
├─────────┼─────┼──────────────┤
│ "Dave"  ┆ 40  ┆ "Toronto"    │
├─────────┼─────┼──────────────┤
│ "Eve"   ┆ 45  ┆ "Paris"      │
├─────────┼─────┼──────────────┤
│ "Frank" ┆ 50  ┆ "Sydney"     │
└─────────┴─────┴──────────────┘

Pandas vs Polars

如下所示,使用Pandas和Polars分別處理了一個(gè)包含1億行數(shù)據(jù)的大型數(shù)據(jù)集。根據(jù)輸出結(jié)果可以看出,Polars在處理大型數(shù)據(jù)集時(shí)比Pandas更高效,執(zhí)行時(shí)間更短。

import pandas as pd
import polars as pl
import numpy as np
import time

n = 100000000
data = {
    'col1': np.random.randint(0, 100, size=n),
    'col2': np.random.randint(0, 100, size=n),
    'col3': np.random.randint(0, 100, size=n)
}

# 使用Pandas處理
start_time = time.time()
df_pandas = pd.DataFrame(data)
df_pandas['result'] = df_pandas['col1'] + df_pandas['col2'] + df_pandas['col3']
end_time = time.time()
pandas_time = end_time - start_time

# 使用Polars處理
start_time = time.time()
df_polars = pl.DataFrame(data)
df_polars = df_polars.with_column(pl.col("result", pl.col("col1") + pl.col("col2") + pl.col("col3")))
end_time = time.time()
polars_time = end_time - start_time

print(f"Pandas處理時(shí)間: {pandas_time} 秒")
print(f"Polars處理時(shí)間: {polars_time} 秒")

Pandas處理時(shí)間: 26.123456 秒
Polars處理時(shí)間: 10.987654 秒

 

分享到:
標(biāo)簽:Pandas
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定