pandas作為一個超大的數據庫,會調用到很多的函數,但是在調用函數的時候,會涉及到很多的數據,調用數據的時候,會用到pivot函數,下面就給大家詳細的解答下關于這方面函數的內容。
1、pivot函數的定義
pivot(index=None,columns=None,values=None)->DataFrame
2、pivot函數的說明
通過給定的索引(index)和列(column)的值重新生一個DataFrame對象。
根據列值對數據進行整形(生成一個“透視”表)。從指定的索引/列中使用唯一的值來形成結果數據幀的軸。此函數不支持數據聚合,多個值將導致列中的多索引。
3、pivo函數的參數
index:指定一列做為生成DataFrame對象的索引,如果為空則默認為原來的索引。
columns:指定一列的值作為列名,必須傳值。
values:指定一列作為生成DataFrame對象的值。可以為空。
4、pivot函數實例
df=pd.DataFrame({'foo':['one','one','one','two','two','two'], 'bar':['A','B','C','A','B','C'], 'baz':[1,2,3,4,5,6], 'zoo':['x','y','z','q','w','t']})
#指定foo的值為新dataframe的index,bar的值為columns,dataframe中對應的值為baz df.pivot(index='foo',columns='bar',values='baz')
#沒有指定value,列名最外層保留原來的列,如下結果baz和zoo為原dataframe中的列名,新指定的列名bar在里層(暫時這么理解)。 df.pivot(index='foo',columns='bar')
#可以通過索引的方式取指定的列數據 df.pivot(index='foo',columns='bar')['baz']
#可以指定多個values df.pivot(index='foo',columns='bar',values=['baz','zoo'])
#指定多個columns df.pivot(index='foo',columns=['bar','baz'],values=['zoo'])
#指定多個index df.pivot(index=['foo','bar'],columns='baz',values='zoo')
#指定多個index可以通過index名取當個index的數據 df.pivot(index=['foo','bar'],columns='baz',values='zoo').loc["one",:] #這兩行代碼運行將會報錯。 #報錯提示:ValueError:Index contains duplicate entries,cannot reshape #意思是指定的索引one有兩個列bar=A沖突了。 df=pd.DataFrame({"foo":['one','one','two','two'], "bar":['A','A','B','C'], "baz":[1,2,3,4]}) df.pivot(index='foo',columns='bar',values='baz')
5、pivot函數在實際工作中解決的案例
現在要上圖中的不同code之間從2020-11-16到2020-11-18三天內num序列數的相關性。
首先,dataframe對象可以直接調用函數corr()計算不同列之間的相關性,所以現在需要將原始的dataframe對象轉換成以code為列,date為索引,num為值的dataframe。
第一種比較笨的方法就是循環,此方法不但代碼量較多而且在數據量很大時會比較耗時。不建議使用。
grouped=df.groupby(by=["code"]) df_num=pd.DataFrame() for name,group in grouped: d=pd.Series(data=group["num"].values,name=name) df_num=pd.concat([df_num,d],axis=1) df_close
第二種方法就是使用pivot函數,一行代碼解決,運行快速。
df_num=df.pivot(index='date',columns='code',values='num')
第二種方法就是使用pivot函數,一行代碼解決,運行快速。
#計算列之間的相關性 df_num.corr()
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家帶來幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/128355.html
摘要:實際遇到的問題在文件當中或者數據庫當的數據通常以長格式或者堆疊格式存儲,特別是金融數據中出現的時間序列數據,例如那怎么才能變成以作為列名,同時日期為索引的呢特別需要對同時進行時間序列分析時,這個需求特別強烈。 實際遇到的問題: 在CSV文件當中或者數據庫當的數據通常以長格式或者(stacked)堆疊格式存儲,特別是金融數據中出現的時間序列數據,例如: In [1]: df Out[1]...
摘要:數據規整化清理轉換合并重塑數據聚合與分組運算數據規整化清理轉換合并重塑合并數據集可根據一個或多個鍵將不同中的行鏈接起來。函數根據樣本分位數對數據進行面元劃分。字典或,給出待分組軸上的值與分組名之間的對應關系。 本篇內容為整理《利用Python進行數據分析》,博主使用代碼為 Python3,部分內容和書本有出入。 在前幾篇中我們介紹了 NumPy、pandas、matplotlib 三個...
摘要:是一個數據分析的開源庫。與表格或關系數據庫中的表非常神似。注意帶有一個索引,類似于關系數據庫中的主鍵。的統計函數分組與聚合通過方法,可以對數據組施加一系列的函數。函數的作用是串聯,追加數據行使用函數。 pandas(Python data analysis)是一個Python數據分析的開源庫。pandas兩種數據結構:DataFrame和Series 安裝:pandas依賴于NumPy...
摘要:以指定數目均勻分割區間。所以給定區間和,以及等分分割點數目,將返回一個數組。將一個函數應用于指定軸上的每一個元素。如果您熟悉,那么你也許聽說過數據透視表。內置的函數以的形式創建電子表格樣式的數據透視表,它可以幫助我們快速查看某幾列的數據。 一行代碼定義List showImg(https://segmentfault.com/img/remote/1460000015965704?...
摘要:收入的波動來自于不同部門或類目的收入漲跌。我們的目標是利用實現收入波動的分析模型。有了這個函數,我們只要給到數據源和細分項,就能得到影響最大的細分項。我們來認識下如何處理日期。 環境準備:sublime+ipython 打開代碼編輯器sublime——本質上,txt文本編輯器也可以寫代碼,并保存為以.py為后綴的python文件,但專業的代碼編輯器可以實現語法高亮、自動補全等功能,并支...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1983·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02