將Python中的字典數據轉化為DataFrame

2021-01-09 老齊教室

編譯:老齊

與本文相關的圖書推薦:《數據準備和特徵工程》

在數據科學項目中,通常用Pandas的read_csv或者read_excel從相應文件中讀入數據,此外,對於數據量不大的時候,可能還有下面的情形出現:

import pandas as pddata = {『key1』: values, 『key2』:values, 『key3』:values, …, 『keyN』:values}df = pd.DataFrame(data)

這裡是將一個Python中的字典data轉化為了Pandas中的DataFrame對象,這樣字典就作為了數據源。

上面的操作並不複雜,當然,這裡演示的字典和對DataFrame的要求都是簡單的情形。就一般而言,如果遇到了簡單的數據源,可知通過下面的三步實施:

確定數據要留言數據的格式,從而確定是否能夠用於本文所說的過程。比如下面的數據:

我們需要做的是把這個表格樣式的數據,用Python的字典表示——數據量小,不費事。創建字典把上面的表格,改寫為:data = {'Rank':[1, 2, 3, 4, 5], 'Language': ['Python', 'Java', 'Javascript', 'C#', 'PHP'], 'Share':[29.88, 19.05, 8.17, 7.3, 6.15], 'Trend':[4.1, -1.8, 0.1, -0.1, -1.0]}print(data)

轉化為DataFrame然後,就開始轉化:df = pd.DataFrame(data)display(df)

三步,這是基本操作,比較簡單。但是,有時候你遇到的情況可能比這複雜一些。

比如,如果你要將Python中的OrderedDict對象轉化為DataFrame:

from collections import OrderedDictdata= OrderedDict([('Trend', [4.1, -1.8, 0.1, -0.1, -1.0]), ('Rank',[1, 2, 3, 4, 5]), ('Language', ['Python', 'Java', 'Javascript', 'C#', 'PHP']), ('Share', [29.88, 19.05, 8.17, 7.3, 6.15])])display(data)

到現在為止,我們使用的就是pd.DataFrame(data)實現了轉化。其實,還有一些參數,如果使用了,能夠讓轉化的結果更多樣。

例如,在創建DataFrame對象時,指定行索引,而不是像前面那樣使用默認的數字。

rom collections import OrderedDictdata = OrderedDict([('Trend', [4.1, -1.8, 0.1, -0.1, -1.0]), ('Rank',[1, 2, 3, 4, 5]), ('Language', ['Python', 'Java', 'Javascript', 'C#', 'PHP']), ('Share', [29.88, 19.05, 8.17, 7.3, 6.15])])df = pd.DataFrame(data, index = ['A', 'B', 'C', 'D', 'E'])display(df)

此外,也可以使用columns這個參數,來指定列索引的名稱。

或許,你不需要字典中的所有數據,那就用columns參數進行篩選吧。

from collections import OrderedDictdata = OrderedDict([('Trend', [4.1, -1.8, 0.1, -0.1, -1.0]), ('Rank',[1, 2, 3, 4, 5]), ('Language', ['Python', 'Java', 'Javascript', 'C#', 'PHP']), ('Share', [29.88, 19.05, 8.17, 7.3, 6.15])])df = pd.DataFrame(data, index = ['A', 'B', 'C', 'D', 'E'], columns=['Language', 'Share'])display(df)

在上述的示例中,都是以字典的鍵作為DataFrame中的特徵(列)名稱,下面的示例演示一種旋轉的方式,即鍵作為行索引。

df = pd.DataFrame.from_dict(data, orient='index')df.head()

從上面的輸出結果中可以看到,這時候的列索引,都採用了默認的數字,也可以指定有意義的名稱。

df = pd.DataFrame.from_dict(data, orient='index', columns=['A', 'B', 'C', 'D', 'F'])df.head()

當DataFrame對象創建了之後,可以把它保存為csv文件。

df.to_csv('top5_prog_lang.csv')

很多時候是從CSV等格式的文件中讀取數據,此外,也有可能遇到上面各個示例的情景,需要將字典轉化為DataFrame。

參考資料:https://www.marsja.se/how-to-convert-a-python-dictionary-to-a-pandas-dataframe/

相關焦點

  • D06 Pandas 花式創建DataFrame及屬性探索
    title: D06|Pandas 構造DataFrame及屬性探索author: Adolph Leecategories: 數據挖掘基礎tags:Python數據挖掘基礎PandasSeries什麼是DataFrameDataFrame是大小可變可異構的二維數據結構,我們通常可將其看作二維表即可。
  • 什麼是Pandas的DataFrame?
    什麼是DataFrameDataFrame是一個表格型的數據結構,它含有一組有序的列,每列可以是不同的值類型(數值、字符串、布爾值等)。DataFrame既有行索引也有列索引,它可以被看做由series組成的字典(共用同一個索引)2. DateFrame特點DataFrame中面向行和面向列的操作基本是平衡的。
  • 如何給DataFrame重命名列?
    . , &39;]dataframe.columns = new_col3.部分重命名columns = dict,使用字典類型的數據對列進行重命名。dataframe.rename(columns = {&34;: &34;})dataframe.rename(columns = {&34;: &34;, &34;:&34;}, inplace=True)4.使用str.replacedataframe.columns
  • Pandas數據結構:DataFrame
    (data)print("")frame = pd.DataFrame(data) # 創建DataFrameprint(frame)print("")print(frame.index) # 查看行索引print("")print(frame.columns) # 查看列索引print(
  • 基礎乾貨:Pandas-Data Frame基礎知識點總結
    熊貓數據框架可以從列表、字典和字典列表等中創建。通過從現有存儲中加載數據集來創建PandasDataFrame,存儲可以是SQL資料庫、CSV文件和Excel文件。在按行和列排列的dataframe數據集中,我們可以將任意數量的數據集存儲在一個dataframe中。我們可以對這些數據集執行許多操作,如算術操作、列/行選擇、列/行加法等。
  • python語言-資料庫查詢數組轉Dataframe格式
    場景描述python環境下需要從greenplum/postgresql中,獲取算法執行的數據,但是從資料庫中查詢出來是數組格式的,算法無法使用,需要轉換為dataframe格式。pandas使用2.1 資料庫調用類 import dbgp as dbgp data
  • Python實現將題目轉化為字典
    ,可以在web 應用程式中進行數據交換。而它的格式就有點類似於常用的字典結構,形如: {『title』 :』 關於《花間集》說法錯誤的是 』 ,』content』 :{ 『A』 :』 作者是趙崇佐 』, 』B』 : 『 收錄當時流行歌曲歌詞 』 }, 『true_choice』:」C」 , ’type』:』 單選題 』 } 。今天要做的就是讀取 word 裡的信息並把它們按照如上的格式進行轉化。
  • Vaex:一種具有超級字符串功能的DataFrame Python庫
    字符串操作是數據科學的重要組成部分。Vaex的最新版本為所有常見的字符串操作添加了令人難以置信的速度和內存利用效率。與Pandas(Python生態系統中最受歡迎的DataFrame庫)相比,四核筆記本電腦上的字符串操作速度提高了約30-100倍,而32核設備上的字符串操作速度提高了1000倍。
  • 取dataframe第一列 - CSDN
    我用Pandas做數據處理,遇到一個問題,它不能得到第一列數據,但是可以得到其他列數據,為什麼?我怎麼能解決這個問題,有人能幫忙嗎?我剛剛導入了excel文件的數據,並希望通過以下方法獲得名稱數據(第一列)data['Name']​
  • 使用python定時爬取系統數據自動郵件推送數據日報
    一、爬取數據requests 庫是用來在Python中發出標準的HTTP請求。 它將請求背後的複雜性抽象成一個漂亮,簡單的API,以便專注於與服務交互和在應用程式中使用數據。JSON格式,類似python的字典格式,pandas包可直接轉化為DataFrame表格格式數據爬取代碼:import requests# 數據採集def getData(): ''' url: 訪問數據接口地址 headers: 瀏覽器請求頭,偽裝成瀏覽器訪問,沒有加請求頭大部分網頁會攔截爬蟲訪問 json
  • Python 讀取excel並轉換為字典
    方法一:利用利用xlrd讀取excel文件其實整個過程比較簡單,利用xlrd讀取excel文件,再把讀取到的數據轉換為dict即可。內容 data_sheet = workbook.sheets()[_sheet] 文件記錄不得大於2000條 if sheet_nrows > _max: return {&34;: &34;, &34;: &34;.format(_max), &34;: None} 34;code&34;0001&34;msg&34;空數據表格,停止導入&34;data
  • 掌握Python字典的12個例子
    為了創建健壯且性能良好的產品,必須非常了解數據結構。在這篇文章中,我們將研究Python程式語言的一個重要數據結構,即字典。字典是鍵值對的無序集合。每個項都有一個鍵和值。字典可以看作是一個有特殊索引的列表。鍵必須是唯一的和不可變的。我們可以使用字符串、數字(int或float)或元組作為鍵。值可以是任何類型。
  • 乾貨整理:處理Pandas Data Frame中的行和列
    數據幀是一種二維數據結構,即數據以表格方式排列成行和列。我們可以對行或列執行基本操作,如選擇、刪除、添加和重命名。今天將使用nba.csv檔案。處理列為了處理列,我們對列執行基本操作,如選擇、刪除、添加和重命名。
  • pandas | 詳解DataFrame中的apply與applymap方法
    今天是pandas數據處理專題的第5篇文章,我們來聊聊pandas的一些高級運算。在上一篇文章當中,我們介紹了panads的一些計算方法,比如兩個dataframe的四則運算,以及dataframe填充Null的方法。
  • Python 多層索引1之from_frame簡介
    python多層索引的含義這裡就不再介紹了。這裡主要介紹幾種應用:如何通過數組、元組、卡迪爾積創建多層索引以及如何將多層索引作為一個整體,對其內部進行索引。,就是將pandas的frame變為多層索引。
  • 如何快速學會Python處理數據?(5000字走心總結)
    將表格型數據讀取為DataFrame對象是pandas的重要特性read_csv(csv文件輸入函數)read_table(文本文件輸入函數)to_csv(數據輸出函數)#遍歷所有文件路徑,讀取所有文件下csv文件數據csv_path = "D:\\\\ad_data
  • 乾貨|如何利用Python處理JSON格式的數據,建議收藏!
    >序列化:將python的數據轉換為json格式的字符串反序列化:將json格式的字符串轉換成python的數據類型序列化首先我們來看一下序列化是如何操作的,我們首先用json.dump()將字典寫入json格式的文件中能夠進行類似操作的則是dataframe當中的to_json()方法,比方說而當你分別打開這兩個文件時,裡面的內容分別是以鍵值對呈現的json數據。
  • python數據類型總結——字典
    查字典的時候,通常我們會從某個字的特徵出發,如拼音或偏旁,最終根據索引,找到這個字。python中,也提供一種數據結構,它包含鍵和值兩個部分,通過鍵可以快速地找到對應的值。python字典字典通過大括號來聲明,可包含若干個鍵值對。字典是可變的。如下:
  • python中的數據結構與算法(2):字典與集合
    字典是什麼字典是便於信息檢索的一種數據結構,鑑於信息檢索在程序中無處不在,字典的使用場景也非常廣泛,包括許多 python 內部機制的實現,也依賴字典結構,比如命名空間的管理等。檢索一般是根據關鍵字查找與它關聯的信息,這些關鍵字應該是固定的,否則就會使原來保存的數據失效,也就是說,關鍵字必須是不可變對象。
  • Python:將XML數據存儲到Pandas DataFrame中
    可擴展標記語言(XML)是一種標記語言,它以人類和機器可讀的格式對數據進行編碼。XML在各種程序中用於構造、存儲和傳輸數據。在這篇文章中,我們將討論如何使用python xml庫中的 「ElementTree」模塊來解析xml數據並將數據存儲在panda DataFrame中。