pandas數據分析38——數據框表格拓展以及縮回對齊

案例背景

需求是這個樣的:

?把這個表格進行拓展。


代碼實現:

df = pd.DataFrame(np.array([[1, 2, 3,4], ['a','b', 'c','d'], ['小明','小紅', '小馬','小天']]))
df

?方法一:自定義函數:

def expand_dataframe(df):m, n = df.shapenew_df = pd.DataFrame(np.full((m, m*n), np.nan))for i in range(m):new_df.iloc[i, i*n:(i+1)*n] = df.iloc[i, :].to_numpy()return new_dfexpand_dataframe(df).fillna('')

?方法二:鏈式法則

pd.concat([df.loc[i].to_frame().T for i in range(df.shape[0])],axis=1)\
.set_axis(range(df.shape[0]*df.shape[1]),axis='columns').fillna('')

?


反向縮回表格對齊

說白了就是上面的需求反過來怎么完成。

df1=expand_dataframe(df).fillna('')
df1.melt()[['value']].replace('', np.nan).dropna().reset_index(drop=True) #.to_numpy().reshape(3,-1)

?若一行只有一個值需要的話就以及結束了,但是這是一行4個值,所以得reshape一下吧

df1.melt()[['value']].replace('', np.nan).dropna().reset_index(drop=True) .to_numpy().reshape(3,-1)

?然后這這個數組套上索引和行名稱就行。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40088.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40088.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40088.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux系統中設置服務開機自啟動

1:背景描述 最近根據工作需要,需要服務實現開機自啟動的效果,因為平時只使用過nohup的后臺掛起操作,很少接觸開機,鏡像裝機服務自啟動的功能,因此,這里簡單記錄一下。 注意,開機自…

解鎖數據潛力:信息抽取、數據增強與UIE的完美融合

解鎖數據潛力:信息抽取、數據增強與UIE的完美融合 1.信息抽取(Information Extraction) 1.1 IE簡介 信息抽取是 NLP 任務中非常常見的一種任務,其目的在于從一段自然文本中提取出我們想要的關鍵信息結構。 舉例來講&#xff0…

從NLP到聊天機器人

一、說明 今天,當打電話給銀行或其他公司時,聽到電話另一端的機器人向你打招呼是很常見的:“你好,我是你的數字助理。請問你的問題。是的,機器人現在不僅可以說人類語言,還可以用人類語言與用戶互動。這是由…

windows權限維持—黃金白銀票據隱藏用戶遠控RustDeskGotoHttp

windows權限維持—黃金白銀票據&隱藏用戶&遠控&RustDesk&GotoHttp 1. 前置1.1. 初始問題1.1.1. 解決辦法 2. 隱藏用戶2.1. 工具原理2.2. 案例操作2.2.1. 單機添加用戶2.2.1.1. 工具添加用戶2.2.1.2. 工具查看隱藏用戶2.2.1.3. 本地查看隱藏用戶 2.2.2. 域內添加…

CentOS系統環境搭建(二)——Centos7設置時間為網絡時間

centos系統環境搭建專欄🔗點擊跳轉 Centos7設置時間為網絡時間 安裝ntpdate工具 yum -y install ntp ntpdate關閉ntpd service ntpd stop設置系統時間與網絡時間同步 ntpdate 0.asia.pool.ntp.org將系統時間寫入硬件時間 hwclock --systohc查看和設置時區 使…

NeuralNLP-NeuralClassifier的使用記錄(二),訓練預測自己的【中文文本多分類】

NeuralNLP-NeuralClassifier的使用記錄,訓練預測自己的【中文文本多分類】 數據準備: ? 與英文的訓練預測一致,都使用相同的數據格式,將數據通過代碼處理為JSON格式,以下是我使用的一種,不同的原數據情況…

java+springboot+mysql理發會員管理系統

項目介紹: 使用javaspringbootmysql開發的理發會員管理系統,系統包含超級管理員,系統管理員、客戶、發型師角色,功能如下: 超級管理員:管理員管理;會員管理;發型師管理&#xff1b…

如何保證數據庫的數據和Redis的數據一致性

實際項目中有可能會使用Redis緩存數據,那么在更新數據的時候如何保證數據庫中的數據和Redis緩存的數據一致,緩存同步策略的選擇是一個很重要的問題。網上有各種說法,大概總結有以下幾種,看看每種方案是否可行以及存在的問題和適用…

安裝軟件包

安裝軟件包 創建一個名為 /home/curtis/ansible/packages.yml 的 playbook : 將 php 和 mariadb 軟件包安裝到 dev、test 和 prod 主機組中的主機上 將 RPM Development Tools 軟件包組安裝到 dev 主機組中的主機上 將 dev 主機組中主機上的所有軟件包更新為最新版本 vim packa…

關于Firmae缺失binwalk模塊

問題 david707:~/FirmAE$ sudo ./run.sh -c weyow ./WAM_9900-20.06.03V.trx [*] ./WAM_9900-20.06.03V.trx emulation start!!! Traceback (most recent call last):File "./sources/extractor/extractor.py", line 19, in <module>import binwalk ModuleNot…

Android Studio調試的時候Logcat不顯示日志了

文章目錄 問題描述解決方案 問題描述 使用Log輸出日志的時候&#xff0c;Logcat窗口并沒有顯示日志。 去除所有的過濾條件之后&#xff0c;Logcat窗口仍然沒有一條消息。 解決方案 關閉Android Studio&#xff0c;重啟Android Studio即可。

Docker容器:docker基礎概述、安裝、網絡及資源控制

文章目錄 一.docker容器概述1.什么是容器2. docker與虛擬機的區別2.1 docker虛擬化產品有哪些及其對比2.2 Docker與虛擬機的區別 3.Docker容器的使用場景4.Docker容器的優點5.Docker 的底層運行原理6.namespace的六項隔離7.Docker核心概念 二.Docker安裝 及管理1.安裝 Docker1.…

【k8s】基于Prometheus監控Kubernetes集群安裝部署

目錄 基于Prometheus監控Kubernetes集群安裝部署 一、環境準備 二、部署kubernetes集群 三、部署Prometheus監控平臺 四、部署Grafana服務 五、grafana web操作 基于Prometheus監控Kubernetes集群安裝部署 一、環境準備 IP地址 主機名 組件 192.168.100.131 k8s-ma…

時序預測 | MATLAB實現WOA-CNN-GRU鯨魚算法優化卷積門控循環單元時間序列預測

時序預測 | MATLAB實現WOA-CNN-GRU鯨魚算法優化卷積門控循環單元時間序列預測 目錄 時序預測 | MATLAB實現WOA-CNN-GRU鯨魚算法優化卷積門控循環單元時間序列預測預測效果基本介紹模型描述程序設計參考資料 預測效果 基本介紹 時序預測 | MATLAB實現WOA-CNN-GRU鯨魚算法優化卷積…

PrefetchParameters

Windows XP重新設置預讀對象是允許的。具體方法是&#xff1a;打開注冊表編輯器&#xff0c;依次展開 HKEY_LOCAL_MACHINE&#xff3c;SYSTEM&#xff3c;CurrentControlSet&#xff3c;Control&#xff3c;Session Manager&#xff3c;Memory Management&#xff3c;PrefetchP…

基于LVQ神經網絡的人臉朝向識別

1案例背景 1.1人臉識別概述 人臉識別作為一個復雜的模式識別問題,近年來受到了廣泛的關注,識別領域的各種方法在這個問題上各顯所長,而且發展出了許多新方法,大大豐富和拓寬了模式識別的方向。人臉識別、檢測,跟蹤、特征定位等技術近年來一直是研究的熱點。人臉識別是人臉應用…

【制作npm包1】申請npm賬號、認識個人包和組織包

概述 在開發當中經常有一種現象&#xff0c;重復代碼寫了N多遍&#xff0c;再次寫同樣的邏輯就再次翻查以前的代碼邏輯。效率低下且容易出錯&#xff0c;封裝一個npm包的價值也不僅僅是給別人用&#xff0c;封裝一套屬于自己或者本部門的npm包也是相當有必要。 也許經常看到一…

RabbitMQ的5種消息隊列

RabbitMQ的5種消息隊列 1、七種模式介紹與應用場景 1.1 簡單模式(Hello World) 一個生產者對應一個消費者&#xff0c;RabbitMQ 相當于一個消息代理&#xff0c;負責將 A 的消息轉發給 B。 應用場景&#xff1a;將發送的電子郵件放到消息隊列&#xff0c;然后郵件服務在隊列…

【JS學習】Object.assign 用法介紹

Object.assign 是ES6中的一個方法。該方法能夠實現對象的淺復制以及對象合并。Object.assign 并不會修改目標對象本身&#xff0c;而是返回一個新的對象&#xff0c;其中包含了所有源對象的屬性。 例1 2個對象合并 const target { a: 1, b: 2 }; const source { b: 3, c: 4…

【git】初次使用git上傳代碼到github遠程倉庫

目錄 0.前言1.新建代碼庫2.添加SSH公鑰2.1 前置準備2.2 Git 基本信息設置2.3 添加SSH Key 3.本地倉庫上傳到github3.1 建立本地倉庫并初始化3.2 初始化倉庫3.3 建立本地與github上新建項目鏈接3.4 同步github新建項目到本地3.5 添加本地文件到緩存區3.6 為上傳文件添加注釋3.7 …