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

2021-01-10 老齊教室

編譯:老齊

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

在數據科學項目中,通常用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/

相關焦點

  • 什麼是Pandas的DataFrame?
    什麼是DataFrameDataFrame是一個表格型的數據結構,它含有一組有序的列,每列可以是不同的值類型(數值、字符串、布爾值等)。DataFrame既有行索引也有列索引,它可以被看做由series組成的字典(共用同一個索引)2. DateFrame特點DataFrame中面向行和面向列的操作基本是平衡的。
  • Pandas數據結構:DataFrame
    (data)print("")frame = pd.DataFrame(data) # 創建DataFrameprint(frame)print("")print(frame.index) # 查看行索引print("")print(frame.columns) # 查看列索引print(
  • 取dataframe第一列 - CSDN
    我用Pandas做數據處理,遇到一個問題,它不能得到第一列數據,但是可以得到其他列數據,為什麼?我怎麼能解決這個問題,有人能幫忙嗎?我剛剛導入了excel文件的數據,並希望通過以下方法獲得名稱數據(第一列)data['Name']​
  • 乾貨|如何利用Python處理JSON格式的數據,建議收藏!
    都提供了四個方法:dumps, dump, loads, load序列化:將python的數據轉換為json格式的字符串反序列化:將json格式的字符串轉換成python的數據類型序列化首先我們來看一下序列化是如何操作的,我們首先用json.dump()將字典寫入json格式的文件中能夠進行類似操作的則是dataframe當中的to_json()方法,比方說
  • Python:將XML數據存儲到Pandas DataFrame中
    可擴展標記語言(XML)是一種標記語言,它以人類和機器可讀的格式對數據進行編碼。XML在各種程序中用於構造、存儲和傳輸數據。在這篇文章中,我們將討論如何使用python xml庫中的 「ElementTree」模塊來解析xml數據並將數據存儲在panda DataFrame中。
  • python海量數據快速查詢的技巧
    在實際工作中,經常會遇到查詢的任務,比如根據某些rs號,檢索dbsnp資料庫,提取這些snp位點的信息,對於這樣的任務,最基本的操作方法是將資料庫的內容存為字典,然後檢索特定的key即可。對於小文件而言,這樣的操作編碼簡單,運行速度也比較滿意,但是對於大型資料庫而言,將資料庫存為字典這個動作是非常耗費時間的,而且每次運行代碼都要執行這樣的操作,導致效率大大降低。想要改善這一狀況,有以下兩種解決辦法1.
  • 數據集的「乾坤大挪移」:如何使pandas.Dataframe從行式到列式?
    本文將傳授給你數據集的「乾坤大挪移」大法,使用pd.melt()或melt方法使pandas. dataframe發生形變。一起來看看吧!行式vs寬式數據集如果我們將一個行式數據集與列式數據集進行比較,最容易理解行式數據集是什麼樣?
  • Pandas >>簡體繁體互轉,且寫入DataFrame
    基礎數據:安裝opencc-python-reimplementedpip install opencc-python-reimplemented簡體轉繁體,並寫到DataFramelist_1=[]for i in range(data.shape[0]):
  • Python數據類型之字典dict
    # 字典是一種可變容器類型,可存儲任意類型對象# 字典以鍵值對存儲數據,key-value形式,鍵值之間使用冒號:分隔,每個鍵值中間用逗號,分隔# 字典包含在大括號,花括號{}中# python中鍵必須是不可變的,但值可取任何數據類型# 元組可以作為 dict 的 key,但列表不能作為元組的 key,dict 要求
  • 數據分析從業者必看,10 個加速 python 數據分析的簡單的小技巧
    其中,有些可能是相當有名的,有些可能是新的,但我相信下次您從事數據分析項目時,它們會非常有用。1.Profiling the pandas dataframeProfiling 是一個幫助我們理解數據的程序,而 Pandas Profiling 正是實現這一點的一個 python 包。
  • python字典操作大全,學習python第7天
    python字典跟列表類型,能存儲多個數據,並且還能在訪問元素的時候可以很快定位到需要的元素。而python字典操作方法有多少種呢?下面羽憶教程為您介紹。': 11},需要注意的是python字典中的值不允許重複。
  • Python學習120課 pandas簡介kaggle下載數據及pandas讀取外部數據
    【每天幾分鐘,從零入門python編程的世界!】numpy的基本的東西我們學習差不多了,後面具體應用中遇到問題具體分析,然後去深入了解遇到的新的知識點就行。現在我們開始學習pandas,pandas一般用的更多,pandas是基於numpy去寫的。pandas是一個專門做數據結構和數據分析的庫。
  • 快速介紹Python數據分析庫pandas的基礎知識和代碼示例
    這不是一個全面的列表,但包含了我在構建機器學習模型中最常用的函數。讓我們開始吧!本附註的結構:導入數據導出數據創建測試對象查看/檢查數據選擇查詢數據清理篩選、排序和分組統計數據首先,我們需要導入pandas開始:import pandas as pd導入數據使用函數pd.read_csv直接將CSV轉換為數據格式。
  • 用Python進行Web爬取數據
    在本文中,我們將詳細學習如何使用Beautiful Soup構建web ScraperScrapyScrapy是用於大規模Web抓取的Python框架。它為你提供了從網站中高效提取數據,根據需要進行處理並以你喜歡的結構和格式存儲數據所需的所有工具。你可以在這裡閱讀更多有關Scrapy的信息。
  • 密碼轉化為散列值真的安全嗎?Python中hashlib模塊使用詳解
    上一篇我們探討了Python中的可哈希對象(參見可哈希對象在Python內的應用我們知道,set集合的特點是它的內部實現了一種排重操作,當數據交給集合set時,如果數據重複,那麼這種重複數據是不會添加到set集合內的。問題來了,set怎麼判斷數據是否重複呢?
  • NumPy中的ndarray與Pandas的Series和DataFrame之間的區別與轉換
    在數據分析中,經常涉及numpy中的ndarray對象與pandas的Series和DataFrame對象之間的轉換,讓一些開發者產生了困惑。本文將簡單介紹這三種數據類型,並以金融市場數據為例,給出相關對象之間轉換的具體示例。
  • 乾貨| 基於 Python 的信用評分模型實戰!|python|離散化|dataframe...
    信用風險評級模型的主要開發流程如下:  1.數據獲取, 包括獲取存量客戶及潛在客戶的數據。存量客戶是指已開展相關業務的客戶;潛在客戶是指未來擬開展相關業務的客戶。  2.數據預處理 ,主要工作包括數據清洗、缺失值處理、異常值處理,主要是為了將獲取的原始數據轉化為可用作模型開發的格式化數據。
  • Python 三十大實踐、建議和技巧
    新一年,我們先為大家準備 30 個非常優秀的 Python 實踐技巧。希望這些訣竅能在實際工作中幫助大家,並且學到一些有用的知識。1、使用 python 3由於官方從2020年1月1日起就停止了對python2.7的更新支持,因此本教程的大部分例子都只能在python 3環境下運行。如果你仍然在使用2.7版本,請先升級到python 3。
  • Python數據類型串講(中)
    序列中每個位置的元素都有其對應的唯一編號,也就是說我們可以通過元素的位置標識,去搜索到該元素。python中的內建序列有6種:列表、元祖、字符串、Unicode字符串、xrange對象、buffer對象,其中列表和元祖是最常見的序列,應重點掌握。字符串在上一篇文章中已簡單介紹,下面將以字符串為例,對序列的通用操作進行詳講。
  • 大數據分析Python NumPy庫使用教程
    NumPy 的前身 Numeric 最早是由 Jim Hugunin 與其它協作者共同開發,2005 年,Travis Oliphant 在 Numeric 中結合了另一個同性質的程序庫 Numarray 的特色,並加入了其它擴展而開發了 NumPy。NumPy 為開放原始碼並且由許多協作者共同維護開發。