久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Excel打不開“巨大的”csv文件或文本文件,,Python輕松搞定

 hercules028 2021-10-31

在某些時(shí)候,,如果你嘗試使用Excel打開大型csv文件或文本文件,可能無(wú)法打開它們,。曾經(jīng)收到一個(gè)8GB的大型csv文件,想看一下內(nèi)容,,但無(wú)法使用任何嘗試過(guò)的程序打開它,,比如記事本,、Excel等。文件太大,,程序甚至無(wú)法啟動(dòng),。

要求相對(duì)簡(jiǎn)單:打開一個(gè)8GB的大型csv文件,查看前幾千行中的數(shù)據(jù),。如果當(dāng)你選擇了正確的工具——Python,,那么這項(xiàng)看似不可能的任務(wù)很容易完成。

下面將首先探討如何檢查大型csv文件的內(nèi)容,,然后我們將大文件分解成小文件,,這樣數(shù)據(jù)就可以在Excel中使用。

出于演示目的,,我們不會(huì)使用8GB的大型csv文件,;相反,假設(shè)使用一個(gè)只有2600行數(shù)據(jù)的較小文件,。

同以前一樣,,從導(dǎo)入必需的庫(kù)開始,在本練習(xí)中,,我們只需要pandas,。

import pandas as pd

df = pd.read_csv('large_data.csv’)

df_small = pd.read_csv('large_data.csv’, nrows = 1000)

pd.read_csv()允許將任何.csv文件讀入Python,而不考慮文件大小——稍后將詳細(xì)介紹這一點(diǎn),。csv文件是逗號(hào)分隔值的文件,,基本上是文本文件。此方法有一個(gè)可選參數(shù)nrows,,用于指定要加載的行數(shù),。

第一個(gè)變量df加載了csv文件中的所有內(nèi)容,而第二個(gè)變量df_small只加載前1000行數(shù)據(jù),。我們可以通過(guò)調(diào)用.shape屬性來(lái)檢查這一點(diǎn),。

圖片

圖1:兩個(gè)數(shù)據(jù)框架的大小(行數(shù),,列數(shù))

如上所示,,“l(fā)arge_data.csv”文件總共包含2599行22列數(shù)據(jù)。還可以確認(rèn),,在df_small變量中,,只加載了前1000行22列數(shù)據(jù)。

鍵入df_small.head()顯示df_small數(shù)據(jù)框架中的前5行數(shù)據(jù),。我們可以通過(guò)這種方式查看大文件,!

圖片

圖2

接下來(lái),如果我們想只使用Excel打開數(shù)據(jù)文件,,該怎么辦,?

雖然我們不能使用魔法讓Excel打開這個(gè)8GB的文件,,但我們可以通過(guò)將它分解成更小的文件來(lái)“分而治之”。例如,,8個(gè)文件,,每個(gè)1GB;或16個(gè)文件,,每個(gè)500MB?,F(xiàn)代版本的Excel可以輕松處理這些文件大小。

這一次,,我們將以稍微不同的方式加載數(shù)據(jù)框架——使用可選參數(shù)chunksize,。同樣,出于演示目的,,我們使用了一個(gè)小得多的文件,。

df = pd.read_csv('large_data.csv’, chunksize = 900)

在不涉及太多技術(shù)細(xì)節(jié)的情況下,chunksize參數(shù)允許我們以塊的形式加載數(shù)據(jù),,在我們的示例中,,每個(gè)塊的大小為900行數(shù)據(jù)。塊的數(shù)量由程序自動(dòng)確定,。鑒于我們的csv文件包含2600行,,我們希望看到2600/900=2.9,這意味著總共有3個(gè)塊,。前兩個(gè)區(qū)塊包含900行,,最后一個(gè)區(qū)塊包含剩余的799行。

圖片

圖3

我們已經(jīng)成功地加載了一個(gè)文件并將其分解為更小的部分,,接下來(lái)讓我們將它們保存到更小的單個(gè)文件中,。

i = 1

for file in df:

    file.to_csv(f’file_{i}.csv’)

    i += 1

圖片

圖4

小結(jié)

上文代碼合起來(lái):

import pandas as pd

df = pd.read_csv('large_data.csv’)

df_small = pd.read_csv('large_data.csv’, nrows = 1000)

i = 1

for file in df:

    print(file.shape)

    file.to_csv(f’file_{i}.csv’)

    i += 1

我們只使用了8行代碼來(lái)解決在Excel中似乎無(wú)法實(shí)現(xiàn)的問(wèn)題,怎么樣,,對(duì)Python有感覺(jué)了嗎,?

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多