還在苦苦尋找數據行列轉換方法?python教你輕鬆搞定!

2020-12-17 素食先生lpt
一起學習,一起成長!

在數據處理與數據分析的過程中,我們經常會遇到一種處理場景就是行列轉換。目前,市場上的軟體比如SPSS,有相應的菜單進行操作。但是,SPSS有其自身的局限性,比如數據量大情況的性能劣勢。

Python作為一門開源的程式語言,在這方面就遠勝於SPSS。或許這樣的比較不是很恰當,我們就當是用來理解差異性的一種方式。

接下來,小編會帶領大家,基於python的使用numpy的一些方法,輕鬆進行數據處理與分析過程中經常遇到的行列轉換問題。

有許多用於重新排列表格型數據的基礎運算。這些函數也稱作重塑(reshape)或軸向旋轉(pivot)運算。

塑層次化索引

層次化索引為DataFrame數據的重排任務提供了一種具有良好一致性的方式。主要功能有二:

stack:將數據的列「旋轉」為行。

unstack:將數據的行「旋轉」為列。

In [9]: import numpy as np

In [10]: data=DataFrame(np.arange(6).reshape((2,3)),

index=pd.Index(['Ohio','Colorado'],name='state'),

columns=pd.Index(['one','two','three'],name='number'))

In [11]: data

Out[11]:

number one two three

state

Ohio 0 1 2

Colorado 3 4 5

使用stack()方法進行列轉行

使用該數據的stack方法即可將列轉換為行,得到一個Series:

In [12]: result=data.stack()

In [13]: result

Out[13]:

state number

Ohio one 0

two 1

three 2

Colorado one 3

two 4

three 5

dtype: int64

使用unstack()方法進行行轉列

對於一個層次化索引的Series,可以用unstack將其重排為一個DataFrame:

In [14]: result.unstack()

Out[14]:

number one two three

state

Ohio 0 1 2

Colorado 3 4 5

默認情況下,unstack操作的是最內層(stack也是如此)。傳入分層級別的編號或名稱即可對其他級別進行unstack操作:

In [15]: result.unstack(0)

Out[15]:

state Ohio Colorado

number

one 0 3

two 1 4

three 2 5

unstack操作引入缺失數據

如果不是所有的級別值都能在各分組中找到的話,則unstack操作可能會引入缺失數據:

In [17]: s1=Series([0,1,2,3],index=['a','b','c','d'])

In [18]: s2=Series([4,5,6],index=['c','d','e'])

In [19]: data2=pd.concat([s1,s2],keys=['one','two'])

In [20]: data2

Out[20]:

one a 0

b 1

c 2

d 3

two c 4

d 5

e 6

dtype: int64

In [21]: data2.unstack()

Out[21]:

a b c d e

one 0.0 1.0 2.0 3.0 NaN

two NaN NaN 4.0 5.0 6.0

stack默認濾除缺失數據

Stack默認會濾除缺失數據,因此該運算是可逆的:

In [22]: data2.unstack().stack()

Out[22]:

one a 0.0

b 1.0

c 2.0

d 3.0

two c 4.0

d 5.0

e 6.0

dtype: float64

In [23]: data2.unstack().stack(dropna=False)

Out[23]:

one a 0.0

b 1.0

c 2.0

d 3.0

e NaN

two a NaN

b NaN

c 4.0

d 5.0

e 6.0

dtype: float64

總的來說,通過python可以通過兩行代碼,輕鬆搞定行列轉換問題。依照上述內容,親手實踐一下吧,如有問題,歡迎留言與關注。感謝支持!

相關焦點

  • Excel如何轉換行列數據?
    Excel如何轉換行列,實現倒置數據?有的朋友在使用Excel處理數據的時候,會覺得行列轉換之後的數據處理起來會方便一下,但是如果你一個個單元格這樣複製轉換的話,會浪費很多時間,而且會顯得自己非常小白;數據少的時候還好,那如果數據多,那可就得頭疼了;當然,我知道很多朋友也不會連轉換這個知識點都不知道,但也有可能會有些朋友是知道有快捷方法的,但是覺得自己在找這個方法的時候可能數據都一個個的轉換好了,
  • 還在煩惱用python在同一圖裡畫多數據曲線嗎?教你6種姿勢搞定
    概要:python的matplotlib作圖很強大,本文教你用6種不同方式解決將多種數據曲線畫到一起。問題:今天,老闆又要一個數據報表,小明選擇用 python來實現。「用matplotlib用來可視化。
  • 教你用Python入門年薪百萬的數據AI行業
    教你用Python入門年薪百萬的數據AI行1.機器學習這是圍繞機器學習建立實用直覺的最快方法之一。這個項目很棒,主要有三個原因:首先,你將建立模型與問題契合的直覺。哪些模型對缺失數據很有效?哪些型號能很好地處理分類功能?是的,您可以通過教科書來尋找答案,但通過觀察它可以更好地學習。其次,這個項目將教你快速模型化原型的寶貴技能。在現實世界中,通常很難知道哪種模型在不嘗試它們的情況下表現最佳。
  • 中英文、大小寫轉換,一秒就搞定!
    可以看到,「0.11」已經轉換成了大寫的「壹角壹分」。看到這裡,有同學會問,直接在 B2 單元格中輸入公式:=TEXT(A1*100,"[Dbnum2]壹角壹分")為什麼還要使用 SUBSTITUTE 函數呢?這不是多此一舉嗎?但是它僅僅適用於少量的數字轉換,要轉換大量數據,則不適用。
  • 教你用Python自製拼圖小遊戲,輕鬆搞定熊孩子
    教你用Python自製拼圖小遊戲,輕鬆搞定熊孩子 本文主要為大家詳細介紹了python實現拼圖小遊戲,文中還有示例代碼介紹,感興趣的小夥伴們可以參考一下。
  • EXCEL如何快速找出重複值和行列轉換?這兩個方法,值得收藏!
    下面就來給大家介紹一種非常簡便的方法,希望能幫到您。A)如何查找重複值:1、以一張員工業績統計表為例,在其中1-5月的業績數據中,找出重複的數值。如下圖。二、excel如何快速行列轉換在使用excel表格數據的時候,有時會用到行列快速轉換,也是比較常用的一種技術,現在就來教大家一種非常簡單的方法實現。
  • 如何用Python輕鬆搞定Excel日常任務
    全文共1370字,預計學習時長7分鐘幾乎人人都在用Excel,這種極易上手的數據分析工具無處不在,一旦你掌握了竅門,它就變得非常強大。而Python通常被認為更具有挑戰性,但能做的事也更多。本文將告訴你,這三項Excel日常任務,如何用Python輕鬆搞定。首先導入Pandas並根據工作簿中可用的工作表加載兩個dataframe,稱它們為sales和states。
  • Python的處理數據,如何進行數據轉換,學會三種方式
    python數據轉換num01,num02是str類型,但是我們需要的是整型,所以通過int轉換成了整數。數據轉換如何完成數據轉換?一、數據類型轉換方法格式:要轉換的類型(數據)要把num01轉換為整數:int(num01)要把num01轉換為浮點數:float(num01)要把num01轉換為字符串:str(num01)要把nun01轉換為布爾類型:bool(num01)例如:print(int("12345") + 1)print(float("12.345") + 1.187
  • Excel中行列轉置的5種方法,你會幾種?
    方法:選中放置轉置後的數據區域,輸入「=transpose(A1:A9)」,按下【Ctrl+shift+Enter】。可以發現,數據實現了行列轉換。解析: =INDIRECT(A1),表示提取A1單元格中的數據;=INDIRECT(A2),表示提取A2單元格中的數據;.依次類推
  • 快速轉換excel表格英文數據的大小寫,3個函數輕鬆搞定
    今天我們分享3個函數輕鬆搞定excel表格英文數據的大小寫快速轉換的問題,這三個函數使用技巧特別簡單,我們在日常工作中,有時候我們會使用excel處理英文數據,因為有的公司 外企,有的公司具有海外業務,所以在工作中就要處理英文數據,處理英文數據就需要涉及英文的大小寫轉換,比如講英文首字母轉換成大寫
  • word文檔怎樣轉換成PDF格式,簡單幾步輕鬆搞定
    在日常生活和工作中,經常要用到各種各樣的文檔,word文檔就是我們用的最多的文檔格式,如果要將現有的word文檔轉換成PDF格式的文檔怎麼辦呢?教你簡單幾步輕鬆搞定。首先用office版本未2016或以上的word軟體打開需要轉換的word文檔。
  • 每日一課 | 如何在Python 3中轉換數據類型
    字符串是電腦程式中數據的一種常見形式,我們可能需要經常將字符串轉換為數字或將數字轉換為字符串,尤其是在接收用戶生成的數據時。將數字轉換為字符串我們可以使用str()方法將數字轉換為字符串。我們將數字或變量傳遞到方法的括號中,然後該數字值將轉換為字符串值。 讓我們首先看一下轉換整數。
  • 想開啟單手模式還在苦苦找尋?努比亞Z20助你一個動作輕鬆用機!
    但是日常生活中,你會怎麼開啟手機的單手模式呢?從設置的一大堆選項中去找嗎?還是自己牢記手機快速開啟單手模式的方法呢?不管是哪一種,都不能夠很快速的為我們打開手機的單手模式吧。但是,努比亞Z20就能做到這一點,只需要一個輕鬆的動作,就可快速開啟單手模式,既不用苦苦的去設置中尋找,也不用牢記快速開啟方法,輕輕鬆鬆就能打開。
  • PDF轉換成Word,兩個方法幫你快速搞定,別再複製粘貼啦!
    想要將手頭上的PDF文件轉換成Word,有些朋友知道PDF文件內容不能編輯但是可以複製,就會直接去複製粘貼。簡單內容少的PDF文件還可以,要是是那種又長又複雜的……emmmmmm,加班非你莫屬!
  • PySpark源碼解析,教你用Python調用高效Scala接口,搞定大規模數據分析
    在 Spark 編譯用戶的 DAG 的時候,Catalyst Optimizer 會創建 BatchEvalPython 或者 ArrowEvalPython 這樣的 Logical Operator,隨後會被轉換成 PythonEvals 這個 Physical Operator。
  • 了解這些python數據結構,你也可以進BAT
    了解了數據結構,你就能把python代碼寫的如絲般順滑。  現如今在很多大廠面試中,面試官都會著重考察候選人對數據結構的認識程度和應用水平,為什麼呢?因為在實際工作過程中,數據結構就像代碼的地基一樣,地基不牢地動山搖。只有充分理解數據機構,才能在工作中應用的得心應手。Python中有哪些數據結構呢?
  • 數據透視表中行列標籤的轉換,篩選功能的使用——想像力電腦應用
    在前兩篇文章的介紹裡,為大家介紹了「創建數據透視表的相關內容及欄位和數據源的更改」方法,這裡我們接著為大家介紹一下「數據透視表中行列標籤的轉換、篩選功能的使用,行標籤的更改」的相關內容。在前一篇文章中,我們操作後的最終數據透視表如下圖所示:從圖中我們可以看出,如果我們是商店的銷售員的話,此表對我們來說是非常方便的。
  • python面試輕鬆搞定,助你搞定面試官,內附15題及答案(08期)
    小夥伴們,有沒有發現,越是好的公司面試,面試官給你的題目,全都是考你的「基本功」。下面我給大家集齊了一些面試題,拿走,不用客氣!1.__new__和__init__的區別答:這個__new__確實很少見到,先做了解吧.1. __new__是一個靜態方法,而__init__是一個實例方法.2.
  • 數據分析:基於Python的自定義文件格式轉換系統
    1.1 背景介紹為什麼要文件格式轉換?       無論讀者現在是做數據挖掘、數據分析、自然語言處理、智能對話系統、商品推薦系統等等,都不可避免的涉及語料的問題即大數據。數據來源無非分為結構化數據、半結構化數據和非結構化數據。
  • 清理衛生間的方法有哪些?七個好方法輕鬆教你搞定衛生間!
    那麼,輕鬆清理衛生間的方法有哪些?七個好方法輕鬆教你搞定衛生間!招數一:瓷磚防滲防黴措施衛浴間的牆壁多用瓷磚鋪就,為保持其清潔和亮麗,可使用多功能去汙膏進行清潔。至於瓷磚縫隙,則可先用牙刷蘸少許去汙膏除垢後,再在縫隙處用毛筆刷一道防水劑即可。