欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)現(xiàn)將橫表和縱表任意轉(zhuǎn)換的兩種方法

 更新時(shí)間:2023年12月28日 10:18:30   作者:大話數(shù)據(jù)分析  
在日常做數(shù)據(jù)分析,接收到最多的表格是縱表,每個(gè)字段變量都有很長(zhǎng)數(shù)據(jù)的長(zhǎng)表,我們稱之為縱向數(shù)據(jù),但是,有時(shí)候,我們也會(huì)遇到橫表,對(duì)于橫向數(shù)據(jù),我們會(huì)數(shù)據(jù)轉(zhuǎn)化,將其轉(zhuǎn)化為縱向數(shù)據(jù),感興趣的同學(xué)跟著小編一起來學(xué)習(xí)吧

我們?nèi)粘W鰯?shù)據(jù)分析,接收到最多的表格是縱表,每個(gè)字段變量都有很長(zhǎng)數(shù)據(jù)的長(zhǎng)表,我們稱之為縱向數(shù)據(jù),但是,有時(shí)候,我們也會(huì)遇到橫表,稱之為橫向數(shù)據(jù),對(duì)于橫向數(shù)據(jù),我們會(huì)數(shù)據(jù)轉(zhuǎn)化,將其轉(zhuǎn)化為縱向數(shù)據(jù)進(jìn)行數(shù)據(jù)處理,下面一起來學(xué)習(xí)。

示例工具:anconda3.7
本文講解內(nèi)容:pandas數(shù)據(jù)重塑
適用范圍:在Python橫表與縱表轉(zhuǎn)化

動(dòng)圖封面

首先導(dǎo)入我們本次案例使用的橫向數(shù)據(jù),從這里看出,橫向數(shù)據(jù)類似于Excel數(shù)據(jù)透視表得出的表,將''季度''這個(gè)字段拖入到列,就會(huì)得到橫表。

導(dǎo)入橫向數(shù)據(jù)如下,包含城市、年份等字段。

import pandas as pd  
 
wide_table=pd.read_excel(r'C:\Users\尚天強(qiáng)\Desktop\各城市銷量橫向數(shù)據(jù).xlsx') 
wide_table

橫表轉(zhuǎn)縱表

橫表轉(zhuǎn)縱表這里介紹兩種方法,一種是melt()方法,另一種是stack()方法,在melt()的參數(shù)中id_vars表示不需要被轉(zhuǎn)換的列名,除此之外剩下的列全部都要轉(zhuǎn)換,就不用寫了,var_name和value_name是自定義設(shè)置對(duì)應(yīng)的列名,轉(zhuǎn)為長(zhǎng)表的數(shù)據(jù)如下所示。

long_table=wide_table.melt(id_vars=["城市","年份"],var_name="季度",value_name="銷售量") 
long_table=long_table.sort_values(by=["城市","年份","銷售量"],ascending=False) 
long_table

使用stack()方法,首先將'城市','年份'設(shè)置為這組數(shù)據(jù)的索引,然后stack()將列索引轉(zhuǎn)換為行索引,最后reset_index()重置索引,修改一下列名,即可的得到與上面一樣的結(jié)果。

long_table=wide_table.set_index(['城市','年份']).stack().reset_index() 
long_table.columns=['城市','年份','季度','銷售量'] 
long_table

縱表轉(zhuǎn)橫表

縱表轉(zhuǎn)橫表就是使用前面介紹的數(shù)據(jù)透視的方法,看看Python如何做數(shù)據(jù)透視,這里使用pivot_table(),與Excel數(shù)據(jù)透視表類似,index放入行值,columns放入列值,values放入計(jì)算的值,然后重置索引,即可得到橫表的結(jié)果。

wide_table=long_table.pivot_table(index=['城市','年份'],columns='季度',values='銷售量').reset_index() 
wide_table=wide_table[['城市','年份','第一季度','第二季度','第三季度','第四季度']] 
wide_table

除此之外介紹一個(gè)SQL語法創(chuàng)建數(shù)據(jù)透視表的方法,這里導(dǎo)入pandasql庫,sum結(jié)合case when函數(shù)判斷計(jì)算列值,然后group by進(jìn)行分組,即可得出如下的結(jié)果。

import pandasql as sql 
 
sql.sqldf("""select 城市,年份,
              sum(case when 季度="第一季度" then 銷售量 end) as "第一季度",
              sum(case when 季度="第二季度" then 銷售量 end) as "第二季度",
              sum(case when 季度="第三季度" then 銷售量 end) as "第三季度",
              sum(case when 季度="第四季度" then 銷售量 end) as "第四季度" 
              from long_table
              group by 城市,年份
              order by 年份;""")

數(shù)據(jù)導(dǎo)出

本節(jié)的內(nèi)容相對(duì)比較簡(jiǎn)單,熟練掌握縱表和橫表的相互轉(zhuǎn)化方法,以及數(shù)據(jù)透視的方法,可以讓數(shù)據(jù)清洗變得尤為簡(jiǎn)單,數(shù)據(jù)表轉(zhuǎn)換后賦值變量,然后導(dǎo)出,數(shù)據(jù)結(jié)果如下所示。

 table1=long_table
 table2=sql.sqldf("""select 城市,年份,
                     sum(case when 季度="第一季度" then 銷售量 end) as "第一季度",
                     sum(case when 季度="第二季度" then 銷售量 end) as "第二季度",
                     sum(case when 季度="第三季度" then 銷售量 end) as "第三季度",
                     sum(case when 季度="第四季度" then 銷售量 end) as "第四季度"
                     from long_table
                     group by 城市,年份
                     order by 年份;""")
 
#數(shù)據(jù)導(dǎo)出 
write=pd.ExcelWriter(r'C:\Users\尚天強(qiáng)\Desktop'+'\\Python轉(zhuǎn)置結(jié)果'+'.xlsx')
 
table1.to_excel(write,sheet_name='Python橫向轉(zhuǎn)縱向',index=False) 
table2.to_excel(write,sheet_name='Python縱向轉(zhuǎn)橫向',index=False)
 
write.save()
write.close()

以上就是Python實(shí)現(xiàn)將橫表和縱表任意轉(zhuǎn)換的兩種方法的詳細(xì)內(nèi)容,更多關(guān)于Python橫表和縱表任意轉(zhuǎn)換的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • mac安裝pytorch及系統(tǒng)的numpy更新方法

    mac安裝pytorch及系統(tǒng)的numpy更新方法

    今天小編就為大家分享一篇mac安裝pytorch及系統(tǒng)的numpy更新方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • python操作SqlServer獲取特定表的所有列名(推薦)

    python操作SqlServer獲取特定表的所有列名(推薦)

    這篇文章主要介紹了python操作SqlServer獲取特定表的所有列名,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • python——全排列數(shù)的生成方式

    python——全排列數(shù)的生成方式

    今天小編就為大家分享一篇python——全排列數(shù)的生成方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python實(shí)例解析圖像形態(tài)學(xué)運(yùn)算技術(shù)

    Python實(shí)例解析圖像形態(tài)學(xué)運(yùn)算技術(shù)

    形態(tài)學(xué)處理方法是基于對(duì)二進(jìn)制圖像進(jìn)行處理的,卷積核決定圖像處理后的效果。本文將為大家詳細(xì)介紹一下OpenCV中的圖像形態(tài)學(xué),感興趣的可以了解一下
    2022-03-03
  • Python OpenCV圖像的位運(yùn)算操作

    Python OpenCV圖像的位運(yùn)算操作

    位運(yùn)算是計(jì)算機(jī)科學(xué)中一種基礎(chǔ)而高效的操作,它直接對(duì)二進(jìn)制位進(jìn)行處理,在圖像處理中,位運(yùn)算也是一種重要的技術(shù),尤其在圖像的合成、分離、掩模處理等場(chǎng)景中,常常用到位運(yùn)算,本文將介紹圖像處理中的常見位運(yùn)算操作,需要的朋友可以參考下
    2024-12-12
  • Python實(shí)現(xiàn)全自動(dòng)輸入文本的示例詳解

    Python實(shí)現(xiàn)全自動(dòng)輸入文本的示例詳解

    這篇文章主要和大家分享一個(gè)Python全自動(dòng)輸入文本的腳本,可以實(shí)現(xiàn)自動(dòng)用Notepad++打開文本文件,然后自動(dòng)輸入文本,最后保存并關(guān)閉文件,從而實(shí)現(xiàn)全面自動(dòng)化處理文本,希望對(duì)大家有所幫助
    2022-11-11
  • 在python中求分布函數(shù)相關(guān)的包實(shí)例

    在python中求分布函數(shù)相關(guān)的包實(shí)例

    這篇文章主要介紹了在python中求分布函數(shù)相關(guān)的包實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python自動(dòng)檢測(cè)SSL證書是否過期的實(shí)現(xiàn)示例

    Python自動(dòng)檢測(cè)SSL證書是否過期的實(shí)現(xiàn)示例

    SSL證書是有有效期的,一旦過期就會(huì)失效,從而帶來安全風(fēng)險(xiǎn),本文主要介紹了Python自動(dòng)檢測(cè)SSL證書是否過期的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • Python數(shù)據(jù)處理Filter函數(shù)高級(jí)用法示例

    Python數(shù)據(jù)處理Filter函數(shù)高級(jí)用法示例

    本文將詳細(xì)介紹filter函數(shù)的使用方法,并提供豐富的示例代碼,幫助你深入理解如何利用它來處理數(shù)據(jù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • Python生成8位隨機(jī)字符串的方法分析

    Python生成8位隨機(jī)字符串的方法分析

    這篇文章主要介紹了Python生成8位隨機(jī)字符串的方法,結(jié)合實(shí)例形式對(duì)比分析了2種比較常用的隨機(jī)字符串生成技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2017-12-12

最新評(píng)論