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

從列表或字典創(chuàng)建Pandas的DataFrame對象的方法

 更新時間:2019年07月06日 10:47:10   作者:everfight  
這篇文章主要介紹了從列表或字典創(chuàng)建Pandas的DataFrame對象的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

介紹

每當(dāng)我使用pandas進(jìn)行分析時,我的第一個目標(biāo)是使用眾多可用選項中的一個將數(shù)據(jù)導(dǎo)入Pandas的DataFrame 。
對于絕大多數(shù)情況下,我使用的 read_excel , read_csv 或 read_sql 。

但是,有些情況下我只需要幾行數(shù)據(jù)或包含這些數(shù)據(jù)里的一些計算。

在這些情況下,了解如何從標(biāo)準(zhǔn)python列表或字典創(chuàng)建DataFrames會很有幫助。

基本過程并不困難,但因為有幾種不同的選擇,所以有助于理解每種方法的工作原理。

我永遠(yuǎn)記不住我是否應(yīng)該使用 from_dict , from_records , from_items 或默認(rèn)的 DataFrame 構(gòu)造函數(shù)。

通常情況下,通過一些反復(fù)試驗和錯誤,我能搞定它。但由于它仍然讓我感到困惑,我想我會通過以下幾個例子來澄清這些不同的方法。

在本文的最后,我簡要介紹了在生成Excel報表時如何使用它。

從Python的數(shù)據(jù)結(jié)構(gòu)中生成DataFrame

您可以使用多種方法來獲取標(biāo)準(zhǔn)python數(shù)據(jù)結(jié)構(gòu)并創(chuàng)建Pandas的DataFrame。

出于這些示例的目的,我將為3個虛構(gòu)公司創(chuàng)建一個包含3個月銷售信息的DataFrame。

字典

在展示下面的示例之前,我假設(shè)已執(zhí)行以下導(dǎo)入:

import pandas as pd
from collections import OrderedDict
from datetime import date

從python創(chuàng)建DataFrame的“默認(rèn)”方式是使用字典列表。在這種情況下,每個字典鍵用于列標(biāo)題。將自動創(chuàng)建默認(rèn)索引:

sales = [{'account': 'Jones LLC', 'Jan': 150, 'Feb': 200, 'Mar': 140},
     {'account': 'Alpha Co', 'Jan': 200, 'Feb': 210, 'Mar': 215},
     {'account': 'Blue Inc', 'Jan': 50, 'Feb': 90, 'Mar': 95 }]
df = pd.DataFrame(sales)


如您所見,這種方法非?!懊嫦蛐小薄H绻胍浴懊嫦蛄小钡姆绞絼?chuàng)建DataFrame,您可以使用 from_dict

sales = {'account': ['Jones LLC', 'Alpha Co', 'Blue Inc'],
     'Jan': [150, 200, 50],sheng cheng
     'Feb': [200, 210, 90],
     'Mar': [140, 215, 95]}
df = pd.DataFrame.from_dict(sales)

使用此方法,您可以獲得與上面相同的結(jié)果。需要考慮的關(guān)鍵點是哪種方法更容易理解您獨特的使用場景。

有時,以面向行的方式獲取數(shù)據(jù)更容易,而其他時候以列為導(dǎo)向的則更容易。

了解這些選項將有助于使您的代碼更簡單,更易于理解,以滿足您的特定需求。

大多數(shù)人會注意到列的順序看起來不對。這個問題出現(xiàn)的原因是標(biāo)準(zhǔn)的python字典不保留其鍵的順序。

如果要控制列順序,則有兩種方式。

第一種,您可以手動重新排序列:

df = df[['account', 'Jan', 'Feb', 'Mar']]

或者你可以使用python中的OrderedDict 創(chuàng)建你的有序字典 。

sales = OrderedDict([ ('account', ['Jones LLC', 'Alpha Co', 'Blue Inc']),
     ('Jan', [150, 200, 50]),
     ('Feb', [200, 210, 90]),
     ('Mar', [140, 215, 95]) ] )
df = pd.DataFrame.from_dict(sales)

這兩種方法都會按照您可能期望的順序為您提供結(jié)果。


由于我在下面概述的原因,我傾向于專門重新排序我的列,盡管使用OrderedDict一直是一個很好理解的選項。

列表

從python創(chuàng)建DataFrame的另一個選擇是將數(shù)據(jù)包含在列表結(jié)構(gòu)中。
第一種方法是使用pandas進(jìn)行面向行的方法 from_records 。此方法類似于字典方法,但您需要顯式調(diào)出列標(biāo)簽。

sales = [('Jones LLC', 150, 200, 50),
     ('Alpha Co', 200, 210, 90),
     ('Blue Inc', 140, 215, 95)]
labels = ['account', 'Jan', 'Feb', 'Mar']
df = pd.DataFrame.from_records(sales, columns=labels)

第二種方法是 from_items 面向列的,實際上看起來類似于 OrderedDict 上面的例子。

sales = [('account', ['Jones LLC', 'Alpha Co', 'Blue Inc']),
     ('Jan', [150, 200, 50]),
     ('Feb', [200, 210, 90]),
     ('Mar', [140, 215, 95]),
     ]
df = pd.DataFrame.from_items(sales)

這兩個示例都將生成以下DataFrame:

各種選項的直觀總結(jié)

為了保持各種選項在我的腦海中清晰,我將這個簡單的圖形放在一起,以顯示字典與列表選項以及行與列導(dǎo)向的方法。

這是一個2X2的網(wǎng)格,所以我希望所有來詢問的人都留下深刻的印象!

為簡單起見,我沒有展示 OrderedDict 方法,因為這種 from_items 方法可能更像是一個現(xiàn)實世界的解決方案。

如果這有點難以閱讀,您也可以獲得PDF版本。

簡單的例子

對于一個簡單的概念,這似乎有很多解釋。

但是,我經(jīng)常使用這些方法來構(gòu)建小型DataFrame,并將其與更復(fù)雜的分析結(jié)合起來。

舉一個例子,假設(shè)我們要保存我們的DataFrame并包含一個頁腳,以便我們知道它何時被創(chuàng)建以及它是由誰創(chuàng)建的。
如果我們填充DataFrame并將其寫入Excel比我們嘗試將單個單元格寫入Excel更容易。

拿我們現(xiàn)有的DataFrame:

sales = [('account', ['Jones LLC', 'Alpha Co', 'Blue Inc']),
     ('Jan', [150, 200, 50]),
     ('Feb', [200, 210, 90]),
     ('Mar', [140, 215, 95]),
     ]
df = pd.DataFrame.from_items(sales)

現(xiàn)在構(gòu)建一個頁腳(以列為導(dǎo)向):

from datetime import date

create_date = "{:%m-%d-%Y}".format(date.today())
created_by = "CM"
footer = [('Created by', [created_by]), ('Created on', [create_date]), ('Version', [1.1])]
df_footer = pd.DataFrame.from_items(footer)


合并進(jìn)入一個Excel中的一個sheet:

writer = pd.ExcelWriter('simple-report.xlsx', engine='xlsxwriter')
df.to_excel(writer, index=False)
df_footer.to_excel(writer, startrow=6, index=False)
writer.save()


這里的秘訣是使用 startrow 在銷售數(shù)據(jù)框架下面寫入頁腳DataFrame。還有一個相應(yīng)的startcol,所以你可以控制成為你想要的列布局。

這使得基本 to_excel 功能具有很大的靈活性。

總結(jié)

大多數(shù)Pandas用戶很快就熟悉了電子表格,CSV和SQL數(shù)據(jù)的攝取。

但是,有時您會在基本列表或字典中包含數(shù)據(jù)并希望填充DataFrame。

Pandas提供了幾種選擇,但可能并不總是立即明確何時使用哪種選擇。

沒有一種方法是“最好的”,它實際上取決于您的需求。

我傾向于喜歡基于列表的方法,因為我通常關(guān)心排序,列表確保我保留順序。

最重要的是要知道這些選項是可用的,這樣您就可以聰明地使用最簡單的選項來滿足您的特定情況。

從表面上看,這些代碼樣例看似簡單,但我發(fā)現(xiàn)使用這些方法生成快速的信息片非常常見,他們可以增加或澄清更復(fù)雜的分析。

DataFrame中數(shù)據(jù)的好處在于它很容易轉(zhuǎn)換為其他格式,如Excel,CSV, HTML,LaTeX等。

這種靈活性對于臨時報告生成非常方便。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 初學(xué)Python函數(shù)的筆記整理

    初學(xué)Python函數(shù)的筆記整理

    這篇文章主要介紹了初學(xué)Python函數(shù)的整理筆記,包括一些基礎(chǔ)的參數(shù)使用方法以及匿名函數(shù)等特性的使用,需要的朋友可以參考下
    2015-04-04
  • python讀取npy文件數(shù)據(jù)實例

    python讀取npy文件數(shù)據(jù)實例

    npy文件用于存儲重建ndarray所需的數(shù)據(jù)、圖形、dtype?和其他信息,下面這篇文章主要給大家介紹了關(guān)于python讀取npy文件數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • python使用Pygal創(chuàng)建交互式圖表的示例代碼

    python使用Pygal創(chuàng)建交互式圖表的示例代碼

    Pygal 是一個用于生成高質(zhì)量、可縮放(SVG 格式)、可交互圖表的 Python 圖表庫,與傳統(tǒng)的圖表庫不同,Pygal 的輸出是基于矢量圖形的,本文給大家介紹了python使用Pygal創(chuàng)建交互式圖表的方法示例,需要的朋友可以參考下
    2024-12-12
  • Python3多線程版TCP端口掃描器

    Python3多線程版TCP端口掃描器

    這篇文章主要為大家詳細(xì)介紹了Python3多線程版TCP端口掃描器,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Python簡單的制作圖片驗證碼實例

    Python簡單的制作圖片驗證碼實例

    本篇文章主要介紹了Python簡單的制作圖片驗證碼實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Python 完美解決 Import “模塊“ could not be resolved ...的問題

    Python 完美解決 Import “模塊“ could not&n

    這篇文章主要介紹了Python 完美解決 Import “模塊“ could not be resolved ...,本文給大家分享問題原因及解決方法,需要的朋友可以參考下
    2022-11-11
  • django 裝飾器 檢測登錄狀態(tài)操作

    django 裝飾器 檢測登錄狀態(tài)操作

    這篇文章主要介紹了django 裝飾器 檢測登錄狀態(tài)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • python字符串對其居中顯示的方法

    python字符串對其居中顯示的方法

    這篇文章主要介紹了python字符串對其居中顯示的方法,涉及Python打印輸出顯示的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • pyinstaller打包django項目的實現(xiàn)步驟

    pyinstaller打包django項目的實現(xiàn)步驟

    本文主要介紹了pyinstaller打包django項目的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Python如何統(tǒng)計函數(shù)調(diào)用的耗時

    Python如何統(tǒng)計函數(shù)調(diào)用的耗時

    這篇文章主要為大家詳細(xì)介紹了如何使用Python實現(xiàn)統(tǒng)計函數(shù)調(diào)用的耗時,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-04-04

最新評論

华亭县| 商洛市| 夹江县| 叶城县| 广河县| 金塔县| 大竹县| 泌阳县| 云林县| 南靖县| 广河县| 乐亭县| 吉林省| 保康县| 同德县| 曲阳县| 罗田县| 上林县| 朝阳区| 平陆县| 乳山市| 祁连县| 新丰县| 江川县| 镇雄县| 宜城市| 抚远县| 连山| 上饶市| 弋阳县| 黔江区| 玛曲县| 民权县| 辽阳市| 平谷区| 潜江市| 九寨沟县| 镇安县| 罗平县| 克什克腾旗| 石渠县|