python實(shí)現(xiàn)Excel多行多列的轉(zhuǎn)換的示例
前言
使用pandas對Excel的多行和多列進(jìn)行轉(zhuǎn)換
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、使用需求
將上表中的多行多列數(shù)據(jù)轉(zhuǎn)換成下表中的三列多行數(shù)據(jù),需要做的就是將同一日期不同坐標(biāo)的值匯總到一列數(shù)據(jù)。核心思想就是新建一列然后把原來的一行多列數(shù)據(jù)匯總成一列多行數(shù)據(jù)。不同日期的值匯總到一起,即完成多行多列的轉(zhuǎn)換。
二、使用步驟
1.引入庫
import pandas as pd
2.讀入數(shù)據(jù)
df = pd.read_excel('源數(shù)據(jù).xlsx')
3.將需要合并的列的列名先放在列表中
merge_list = list(df.loc[:, '75.951142 39.473421':].columns)#這里是坐標(biāo),是日期右邊的列名,可以根據(jù)自己的表格改。
4.填充空值為0
df.loc[:, '75.951142 39.473421':] = df.loc[:, '75.951142 39.473421':].fillna(0)
5.添加新列,把待合并的所有列變成一個大字符串(傳入函數(shù)處理)
# 定義函數(shù)來處理合并操作 def merge_values(s): # 每2列進(jìn)行合并分隔符為|,2列與2列合并分割符為#,即 監(jiān)測值和坐標(biāo) result = [] for idx in range(0, len(s.values), 2): # len(s.values)即df.loc[:,'學(xué)科':]的每一行的長度 ,第三個字段2為步長2即2個合并 result.append(f'{s[idx]}|{merge_list[idx]}') # 生成一個列表,格式為數(shù)值和坐標(biāo),這里merge_list[idx]是后面添加的坐標(biāo)列 return '#'.join(result) # 將列表用#號分割返回一個大字符串 格式為:檢測值和坐標(biāo) # 添加新列,把待合并的所有列變成一個大字符串(傳入函數(shù)處理) df['merge'] = df.loc[:, '75.951142 39.473421':].apply(merge_values, axis=1)
6.刪除合并之前的列,保存id,name,merge列
df.drop(merge_list,axis=1,inplace=True)
7. 使用explode來變成多列
df['75.951142 39.473421'] = df['merge'].str.split('|').str[0]df['坐標(biāo)'] = df['merge'].str.split('|').str[1]#這里添加新的坐標(biāo)列df.drop(['merge'],axis=1,inplace=True)df['75.951142 39.473421'] = df['merge'].str.split('|').str[0] df['坐標(biāo)'] = df['merge'].str.split('|').str[1]#這里添加新的坐標(biāo)列 df.drop(['merge'],axis=1,inplace=True)
8.存儲到本地生成新的csv文件
df.to_excel('轉(zhuǎn)換后數(shù)據(jù).xlsx', index=False)
總結(jié)
以上就是今天要講的內(nèi)容,本文僅僅簡單介紹了多行多列數(shù)據(jù)之間的轉(zhuǎn)換的一個小案例,主要是利用pandas來解決。
到此這篇關(guān)于python實(shí)現(xiàn)Excel多行多列的轉(zhuǎn)換的示例的文章就介紹到這了,更多相關(guān)python Excel多行多列轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 將json數(shù)據(jù)提取轉(zhuǎn)化為txt的方法
今天小編就為大家分享一篇python 將json數(shù)據(jù)提取轉(zhuǎn)化為txt的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10Python實(shí)現(xiàn)讀取json文件到excel表
這篇文章主要介紹了Python實(shí)現(xiàn)讀取json文件到excel表,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-11-11Django ModelSerializer實(shí)現(xiàn)自定義驗(yàn)證的使用示例
本文主要介紹了Django ModelSerializer實(shí)現(xiàn)自定義驗(yàn)證的使用示例,多種字段驗(yàn)證器幫助開發(fā)者確保數(shù)據(jù)的完整性和準(zhǔn)確性,具有一定的參考價值,感興趣的可以了解一下2023-11-11Python進(jìn)程池Pool應(yīng)用實(shí)例分析
這篇文章主要介紹了Python進(jìn)程池Pool應(yīng)用,結(jié)合實(shí)例形式分析了Python進(jìn)程池Pool功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-11-11