成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

pandas應(yīng)用實例之pivot函數(shù)詳解

89542767 / 589人閱讀

  pandas作為一個超大的數(shù)據(jù)庫,會調(diào)用到很多的函數(shù),但是在調(diào)用函數(shù)的時候,會涉及到很多的數(shù)據(jù),調(diào)用數(shù)據(jù)的時候,會用到pivot函數(shù),下面就給大家詳細(xì)的解答下關(guān)于這方面函數(shù)的內(nèi)容。


  1、pivot函數(shù)的定義

  pivot(index=None,columns=None,values=None)->DataFrame


  2、pivot函數(shù)的說明


  通過給定的索引(index)和列(column)的值重新生一個DataFrame對象。


  根據(jù)列值對數(shù)據(jù)進(jìn)行整形(生成一個“透視”表)。從指定的索引/列中使用唯一的值來形成結(jié)果數(shù)據(jù)幀的軸。此函數(shù)不支持?jǐn)?shù)據(jù)聚合,多個值將導(dǎo)致列中的多索引。


  3、pivo函數(shù)的參數(shù)


  index:指定一列做為生成DataFrame對象的索引,如果為空則默認(rèn)為原來的索引。


  columns:指定一列的值作為列名,必須傳值。


  values:指定一列作為生成DataFrame對象的值??梢詾榭?。


  4、pivot函數(shù)實例


  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']})

01.png

  #指定foo的值為新dataframe的index,bar的值為columns,dataframe中對應(yīng)的值為baz
  df.pivot(index='foo',columns='bar',values='baz')

02.png

  #沒有指定value,列名最外層保留原來的列,如下結(jié)果baz和zoo為原dataframe中的列名,新指定的列名bar在里層(暫時這么理解)。
  df.pivot(index='foo',columns='bar')

03.png

  #可以通過索引的方式取指定的列數(shù)據(jù)
  df.pivot(index='foo',columns='bar')['baz']

 

04.png

  #可以指定多個values
  df.pivot(index='foo',columns='bar',values=['baz','zoo'])

05.png

  #指定多個columns
  df.pivot(index='foo',columns=['bar','baz'],values=['zoo'])

06.png

  #指定多個index
  df.pivot(index=['foo','bar'],columns='baz',values='zoo')

07.png

  #指定多個index可以通過index名取當(dāng)個index的數(shù)據(jù)
  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函數(shù)在實際工作中解決的案例

10.png

  現(xiàn)在要上圖中的不同code之間從2020-11-16到2020-11-18三天內(nèi)num序列數(shù)的相關(guān)性。


  首先,dataframe對象可以直接調(diào)用函數(shù)corr()計算不同列之間的相關(guān)性,所以現(xiàn)在需要將原始的dataframe對象轉(zhuǎn)換成以code為列,date為索引,num為值的dataframe。


  第一種比較笨的方法就是循環(huán),此方法不但代碼量較多而且在數(shù)據(jù)量很大時會比較耗時。不建議使用。


  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

11.png

  第二種方法就是使用pivot函數(shù),一行代碼解決,運行快速。

  df_num=df.pivot(index='date',columns='code',values='num')

12.png

  第二種方法就是使用pivot函數(shù),一行代碼解決,運行快速。


  #計算列之間的相關(guān)性
  df_num.corr()

13.png

  綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)韼椭?/p>

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/128355.html

相關(guān)文章

  • PYTHON PANDAS數(shù)據(jù)重塑(Data Reshaping)

    摘要:實際遇到的問題在文件當(dāng)中或者數(shù)據(jù)庫當(dāng)?shù)臄?shù)據(jù)通常以長格式或者堆疊格式存儲,特別是金融數(shù)據(jù)中出現(xiàn)的時間序列數(shù)據(jù),例如那怎么才能變成以作為列名,同時日期為索引的呢特別需要對同時進(jìn)行時間序列分析時,這個需求特別強烈。 實際遇到的問題: 在CSV文件當(dāng)中或者數(shù)據(jù)庫當(dāng)?shù)臄?shù)據(jù)通常以長格式或者(stacked)堆疊格式存儲,特別是金融數(shù)據(jù)中出現(xiàn)的時間序列數(shù)據(jù),例如: In [1]: df Out[1]...

    stefan 評論0 收藏0
  • 【數(shù)據(jù)科學(xué)系統(tǒng)學(xué)習(xí)】Python # 數(shù)據(jù)分析基本操作[四] 數(shù)據(jù)規(guī)整化和數(shù)據(jù)聚合與分組運算

    摘要:數(shù)據(jù)規(guī)整化清理轉(zhuǎn)換合并重塑數(shù)據(jù)聚合與分組運算數(shù)據(jù)規(guī)整化清理轉(zhuǎn)換合并重塑合并數(shù)據(jù)集可根據(jù)一個或多個鍵將不同中的行鏈接起來。函數(shù)根據(jù)樣本分位數(shù)對數(shù)據(jù)進(jìn)行面元劃分。字典或,給出待分組軸上的值與分組名之間的對應(yīng)關(guān)系。 本篇內(nèi)容為整理《利用Python進(jìn)行數(shù)據(jù)分析》,博主使用代碼為 Python3,部分內(nèi)容和書本有出入。 在前幾篇中我們介紹了 NumPy、pandas、matplotlib 三個...

    The question 評論0 收藏0
  • Python數(shù)據(jù)分析學(xué)習(xí)筆記Pandas入門

    摘要:是一個數(shù)據(jù)分析的開源庫。與表格或關(guān)系數(shù)據(jù)庫中的表非常神似。注意帶有一個索引,類似于關(guān)系數(shù)據(jù)庫中的主鍵。的統(tǒng)計函數(shù)分組與聚合通過方法,可以對數(shù)據(jù)組施加一系列的函數(shù)。函數(shù)的作用是串聯(lián),追加數(shù)據(jù)行使用函數(shù)。 pandas(Python data analysis)是一個Python數(shù)據(jù)分析的開源庫。pandas兩種數(shù)據(jù)結(jié)構(gòu):DataFrame和Series 安裝:pandas依賴于NumPy...

    zqhxuyuan 評論0 收藏0
  • 8個Python高效數(shù)據(jù)分析的技巧

    摘要:以指定數(shù)目均勻分割區(qū)間。所以給定區(qū)間和,以及等分分割點數(shù)目,將返回一個數(shù)組。將一個函數(shù)應(yīng)用于指定軸上的每一個元素。如果您熟悉,那么你也許聽說過數(shù)據(jù)透視表。內(nèi)置的函數(shù)以的形式創(chuàng)建電子表格樣式的數(shù)據(jù)透視表,它可以幫助我們快速查看某幾列的數(shù)據(jù)。 一行代碼定義List showImg(https://segmentfault.com/img/remote/1460000015965704?...

    FullStackDeveloper 評論0 收藏0
  • 如何進(jìn)行python編程:一個簡單的收入波動分析模型

    摘要:收入的波動來自于不同部門或類目的收入漲跌。我們的目標(biāo)是利用實現(xiàn)收入波動的分析模型。有了這個函數(shù),我們只要給到數(shù)據(jù)源和細(xì)分項,就能得到影響最大的細(xì)分項。我們來認(rèn)識下如何處理日期。 環(huán)境準(zhǔn)備:sublime+ipython 打開代碼編輯器sublime——本質(zhì)上,txt文本編輯器也可以寫代碼,并保存為以.py為后綴的python文件,但專業(yè)的代碼編輯器可以實現(xiàn)語法高亮、自動補全等功能,并支...

    antyiwei 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<