python 數(shù)據(jù)分析實(shí)現(xiàn)長(zhǎng)寬格式的轉(zhuǎn)換
我就廢話不多說(shuō)了,大家還是直接看代碼吧!
# encoding=utf-8 import numpy as np import pandas as pd # 長(zhǎng)寬格式的轉(zhuǎn)換 # 1 data = pd.read_csv('d:data/macrodata.csv') print 'data:=\n', data print 'data.to_records():=\n', data.to_records() print 'data.year:=\n', data.year print 'data.quarter:=\n', data.quarter periods = pd.PeriodIndex(year=data.year, quarter=data.quarter, name='date') print 'periods:=\n', periods data = pd.DataFrame(data.to_records(), columns=pd.Index(['realgdp', 'infl', 'unemp'], name='item'), index=periods.to_timestamp('D', 'end')) print 'data:=\n', data ldata = data.stack().reset_index().rename(columns={0: 'value'}) # print 'ldata:=\n', ldata print 'ldata.get(\'realgdp\'):=\n', ldata.get('realgdp') print 'ldata.get(\'unemp\'):=\n', ldata.get('unemp') wdata = ldata.pivot('date', 'item', 'value') print 'ldata:=\n', ldata print 'wdata:=\n', wdata # 2 print 'ldata[:10]:=\n', ldata[:10] pivoted = ldata.pivot('date', 'item', 'value') print 'pivoted:=\n', pivoted print 'pivoted.head():=\n', pivoted.head() print 'ldata:=\n', ldata ldata['value2'] = np.random.randn(len(ldata)) print 'ldata[\'value2\']:=\n', ldata['value2'] print 'ldata[:10]:=\n', ldata[:10] pivoted = ldata.pivot('date', 'item') print 'pivoted:=\n', pivoted print pivoted[:5] print 'pivoted[\'value\'][:5]:=\n', pivoted['value'][:5] print 'ldata:=\n', ldata unstacked = ldata.set_index(['date', 'item']).unstack('item') print 'unstacked:=\n', unstacked print 'test'
補(bǔ)充知識(shí):python使用_pandas_用stack和unstack進(jìn)行行列重塑(key-value變寬表)
數(shù)據(jù)結(jié)構(gòu)的重塑(reshape)
與數(shù)據(jù)庫(kù)交互時(shí)常遇到堆疊格式(key-value)和寬表形式(dataframe)的轉(zhuǎn)換,如:
堆疊格式:
寬表形式dataframe:
下面是相互轉(zhuǎn)換的示例代碼:
import pandas as pd import numpy as np # 常用的表格形式的數(shù)據(jù)結(jié)構(gòu) df = pd.DataFrame(np.arange(6).reshape((2,3)), index=['id1','id2'], columns=['attr1','attr2','attr3']) print(df) out: attr1 attr2 attr3 id1 0 1 2 id2 3 4 5 # 寬表形式(dataframe)轉(zhuǎn)變?yōu)槎询B形式(key-value)形式 # 數(shù)據(jù)庫(kù)中常以該形式存儲(chǔ) df_key_value = df.stack().reset_index() df_key_value.columns = ['id', 'attr', 'value'] print(df_key_value) out: id attr value 0 id1 attr1 0 1 id1 attr2 1 2 id1 attr3 2 3 id2 attr1 3 4 id2 attr2 4 5 id2 attr3 5 # 堆疊轉(zhuǎn)換為寬表形式 # 用set_index創(chuàng)建層次化索引,在用unstack重塑 # unstack中作為旋轉(zhuǎn)軸的變量(如attr),其值會(huì)作為列變量展開 df_key_value.set_index(['id','attr']).unstack('attr') out: value attr attr1 attr2 attr3 id id1 0 1 2 id2 3 4 5 # 多層索引轉(zhuǎn)化為寬表 df_long = df_key_value.set_index(['id','attr']).unstack('attr')['value'].reset_index() df_long out: attr id attr1 attr2 attr3 0 id1 0 1 2 1 id2 3 4 5 # 堆疊轉(zhuǎn)換為寬表的快捷鍵---pivot df_key_value.pivot('id','attr','value') out: attr attr1 attr2 attr3 id id1 0 1 2 id2 3 4 5
以上這篇python 數(shù)據(jù)分析實(shí)現(xiàn)長(zhǎng)寬格式的轉(zhuǎn)換就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Python編寫可視化界面的全過(guò)程(Python+PyCharm+PyQt)
- Python實(shí)現(xiàn)K-means聚類算法并可視化生成動(dòng)圖步驟詳解
- python數(shù)據(jù)分析之員工個(gè)人信息可視化
- python爬取各省降水量及可視化詳解
- 關(guān)于Python可視化Dash工具之plotly基本圖形示例詳解
- python用pyecharts實(shí)現(xiàn)地圖數(shù)據(jù)可視化
- Python繪制K線圖之可視化神器pyecharts的使用
- Python繪制詞云圖之可視化神器pyecharts的方法
- python 可視化庫(kù)PyG2Plot的使用
- Python數(shù)據(jù)分析之彩票的歷史數(shù)據(jù)
- Python 數(shù)據(jù)分析之逐塊讀取文本的實(shí)現(xiàn)
- Python數(shù)據(jù)分析庫(kù)pandas高級(jí)接口dt的使用詳解
- Python Pandas數(shù)據(jù)分析工具用法實(shí)例
- 用Python 爬取貓眼電影數(shù)據(jù)分析《無(wú)名之輩》
- 大數(shù)據(jù)分析用java還是Python
- PyCharm設(shè)置Ipython交互環(huán)境和宏快捷鍵進(jìn)行數(shù)據(jù)分析圖文詳解
- Python實(shí)戰(zhàn)之疫苗研發(fā)情況可視化
相關(guān)文章
Pytorch中TensorBoard及torchsummary的使用詳解
這篇文章主要介紹了Pytorch中TensorBoard及torchsummary的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-05-05python GUI庫(kù)圖形界面開發(fā)之PyQt5時(shí)間控件QTimer詳細(xì)使用方法與實(shí)例
這篇文章主要介紹了python GUI庫(kù)圖形界面開發(fā)之PyQt5時(shí)間控件QTimer詳細(xì)使用方法與實(shí)例,需要的朋友可以參考下2020-02-02PyQt5?python?數(shù)據(jù)庫(kù)?表格動(dòng)態(tài)增刪改詳情
這篇文章主要介紹了PyQt5?python?數(shù)據(jù)庫(kù)?表格動(dòng)態(tài)增刪改詳情,首先手動(dòng)連接數(shù)據(jù)庫(kù)與下一個(gè)的程序連接數(shù)據(jù)庫(kù)是獨(dú)立的2個(gè)部分,下面來(lái)看看文章的詳細(xì)介紹2022-01-01python interpret庫(kù)訓(xùn)練模型助力機(jī)器學(xué)習(xí)
這篇文章主要為大家介紹了python interpret庫(kù)訓(xùn)練模型功能特性,為你的機(jī)器學(xué)習(xí)提供便捷的路徑,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01python tornado獲取請(qǐng)求參數(shù)的方法
在Tornado框架中,獲取請(qǐng)求參數(shù)包括查詢字符串參數(shù)、表單數(shù)據(jù)和JSON數(shù)據(jù)等,JSON數(shù)據(jù)通過(guò)直接訪問(wèn)self.request.json獲取,正確處理這些數(shù)據(jù)需要注意請(qǐng)求的Content-Type和數(shù)據(jù)格式,感興趣的朋友跟隨小編一起看看吧2024-09-09