Python實(shí)現(xiàn)把多維數(shù)組展開(kāi)成DataFrame
如下所示:
import numpy as np import pandas as pd ################# 準(zhǔn)備數(shù)據(jù) ################# a1 = np.arange(1,101) a3 = a1.reshape((2,5,10)) a3 ''' array([[[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], [ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], [ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40], [ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50]], [[ 51, 52, 53, 54, 55, 56, 57, 58, 59, 60], [ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], [ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80], [ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90], [ 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]]]) ''' ################# 準(zhǔn)備標(biāo)簽 ################# # 第 1 維的標(biāo)簽 index1 = pd.Series(np.arange(1,11)) index1 = index1.astype(str) index1 = 'A'+index1 index1 ''' 0 A1 1 A2 2 A3 3 A4 4 A5 5 A6 6 A7 7 A8 8 A9 9 A10 ''' # 第 2 維的標(biāo)簽 index2 = pd.Series(np.arange(1,6)) index2 = index2.astype(str) index2 = 'B'+index2 index2 ''' 0 B1 1 B2 2 B3 3 B4 4 B5 ''' # 第 3 維的標(biāo)簽 index3 = pd.Series(np.arange(1,3)) index3 = index3.astype(str) index3 = 'C'+index3 index3 ''' 0 C1 1 C2 ''' ################# 展開(kāi)數(shù)據(jù) ################# # 把三維數(shù)組展開(kāi) value = a3.flatten() value = pd.Series(value) value.name = 'value' value ''' 0 1 1 2 2 3 ... 97 98 98 99 99 100 Name: value, Length: 100, dtype: int64 ''' ################# 展開(kāi)標(biāo)簽 ################# import itertools # index的笛卡爾乘積。注意:高維在前,低維在后 prod = itertools.product(index3, index2, index1 ) # 轉(zhuǎn)換為DataFrame prod = pd.DataFrame([x for x in prod]) prod.columns = ['C', 'B', 'A'] prod.T ''' 0 1 2 3 4 5 6 7 8 9 ... 90 91 92 93 94 95 96 \ C C1 C1 C1 C1 C1 C1 C1 C1 C1 C1 ... C2 C2 C2 C2 C2 C2 C2 B B1 B1 B1 B1 B1 B1 B1 B1 B1 B1 ... B5 B5 B5 B5 B5 B5 B5 A A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 ... A1 A2 A3 A4 A5 A6 A7 97 98 99 C C2 C2 C2 B B5 B5 B5 A A8 A9 A10 [3 rows x 100 columns] ''' ################# 最終數(shù)據(jù) ################# # 合并成一個(gè)DataFrame pd.concat([prod, value], axis=1) ''' C B A value 0 C1 B1 A1 1 1 C1 B1 A2 2 2 C1 B1 A3 3 3 C1 B1 A4 4 4 C1 B1 A5 5 5 C1 B1 A6 6 6 C1 B1 A7 7 7 C1 B1 A8 8 8 C1 B1 A9 9 9 C1 B1 A10 10 10 C1 B2 A1 11 11 C1 B2 A2 12 12 C1 B2 A3 13 13 C1 B2 A4 14 14 C1 B2 A5 15 15 C1 B2 A6 16 16 C1 B2 A7 17 17 C1 B2 A8 18 18 C1 B2 A9 19 19 C1 B2 A10 20 20 C1 B3 A1 21 21 C1 B3 A2 22 22 C1 B3 A3 23 23 C1 B3 A4 24 24 C1 B3 A5 25 25 C1 B3 A6 26 26 C1 B3 A7 27 27 C1 B3 A8 28 28 C1 B3 A9 29 29 C1 B3 A10 30 .. .. .. ... ... 70 C2 B3 A1 71 71 C2 B3 A2 72 72 C2 B3 A3 73 73 C2 B3 A4 74 74 C2 B3 A5 75 75 C2 B3 A6 76 76 C2 B3 A7 77 77 C2 B3 A8 78 78 C2 B3 A9 79 79 C2 B3 A10 80 80 C2 B4 A1 81 81 C2 B4 A2 82 82 C2 B4 A3 83 83 C2 B4 A4 84 84 C2 B4 A5 85 85 C2 B4 A6 86 86 C2 B4 A7 87 87 C2 B4 A8 88 88 C2 B4 A9 89 89 C2 B4 A10 90 90 C2 B5 A1 91 91 C2 B5 A2 92 92 C2 B5 A3 93 93 C2 B5 A4 94 94 C2 B5 A5 95 95 C2 B5 A6 96 96 C2 B5 A7 97 97 C2 B5 A8 98 98 C2 B5 A9 99 99 C2 B5 A10 100 [100 rows x 4 columns] '''
以上這篇Python實(shí)現(xiàn)把多維數(shù)組展開(kāi)成DataFrame就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Flask框架踩坑之a(chǎn)jax跨域請(qǐng)求實(shí)現(xiàn)
這篇文章主要介紹了Flask框架踩坑之a(chǎn)jax跨域請(qǐng)求實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02
Python?sklearn?中的?make_blobs()?函數(shù)示例詳解
make_blobs()?是?sklearn.datasets中的一個(gè)函數(shù),這篇文章主要介紹了Python?sklearn?中的?make_blobs()?函數(shù),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
Python實(shí)現(xiàn)OpenCV的安裝與使用示例
這篇文章主要介紹了Python實(shí)現(xiàn)OpenCV的安裝與使用,結(jié)合實(shí)例形式分析了Python中OpenCV的安裝及針對(duì)圖片的相關(guān)操作技巧,需要的朋友可以參考下2018-03-03
Linux上安裝Python的PIL和Pillow庫(kù)處理圖片的實(shí)例教程
這里我們來(lái)看一下在Linux上安裝Python的PIL和Pillow庫(kù)處理圖片的實(shí)例教程,包括一個(gè)使用Pillow庫(kù)實(shí)現(xiàn)批量轉(zhuǎn)換圖片的例子:2016-06-06
Flask進(jìn)階之構(gòu)建RESTful?API和數(shù)據(jù)庫(kù)交互操作
這篇文章主要為大家介紹了Flask進(jìn)階之構(gòu)建RESTful API和數(shù)據(jù)庫(kù)交互操作示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
Python讀取JSON文件及一些常見(jiàn)的陷阱和改進(jìn)方法
在Python編程中處理JSON文件是一項(xiàng)基本但關(guān)鍵的技能,文章通過(guò)一個(gè)簡(jiǎn)單的讀取JSON文件的代碼示例出發(fā),分析了代碼中存在的問(wèn)題,將遇到的問(wèn)題解決方法介紹也非常詳細(xì),需要的朋友可以參考下2024-10-10
Python使用ffmpy將amr格式的音頻轉(zhuǎn)化為mp3格式的例子
今天小編就為大家分享一篇Python使用ffmpy將amr格式的音頻轉(zhuǎn)化為mp3格式的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08
使用Python實(shí)現(xiàn)一個(gè)優(yōu)雅的異步定時(shí)器
在 Python 中實(shí)現(xiàn)定時(shí)器功能是一個(gè)常見(jiàn)需求,尤其是在需要周期性執(zhí)行任務(wù)的場(chǎng)景下,本文給大家介紹了基于 asyncio 和 threading 模塊,可擴(kuò)展的異步定時(shí)器實(shí)現(xiàn),需要的朋友可以參考下2025-04-04
Python3 assert斷言實(shí)現(xiàn)原理解析
這篇文章主要介紹了Python3 assert斷言實(shí)現(xiàn)原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03

