c++控制台应用每一列数据如何对齐_懂Excel就能轻松入门Python数据分析包pandas(十六):合并数据...
此系列文章收錄在公眾號(hào)中:數(shù)據(jù)大宇宙 > 數(shù)據(jù)處理 >E-pd
轉(zhuǎn)發(fā)本文并私信我"python",即可獲得Python資料以及更多系列文章(持續(xù)更新的)
經(jīng)常聽別人說 Python 在數(shù)據(jù)領(lǐng)域有多厲害,結(jié)果學(xué)了很長時(shí)間,連數(shù)據(jù)處理都麻煩得要死。后來才發(fā)現(xiàn),原來不是 Python 數(shù)據(jù)處理厲害,而是他有數(shù)據(jù)分析神器—— pandas
前言
本系列上一節(jié)說了拆分?jǐn)?shù)據(jù)的案例,這次自然是說下怎么合并數(shù)據(jù)。
隨著需求復(fù)雜度提高,很多時(shí)候已經(jīng)不能用 excel 自帶功能實(shí)現(xiàn)了,不過 pandas 中許多概念與 excel 不謀而合
案例1
公司的銷售系統(tǒng)功能不全,導(dǎo)出數(shù)據(jù)時(shí)只能把各個(gè)部門獨(dú)立一個(gè) Excel 文件,此時(shí)你需要對整體數(shù)據(jù)做分析,最好的方式當(dāng)然是先把各個(gè)文件統(tǒng)一匯總起來:
- 注意看,雖然每個(gè)表的標(biāo)題一樣,但是他們的順序可能出現(xiàn)不一致
這里有3個(gè)關(guān)鍵點(diǎn):
- 如何獲得一個(gè)文件夾中所有文件的路徑
- 加載 Excel 文件數(shù)據(jù)
- 列標(biāo)題對齊的情況下,多個(gè)數(shù)據(jù)合并
這次我們需要用到3個(gè)包:
- pandas 不用多說
- from pathlib import Path ,用于獲取文件夾中文件的路徑
- openpyxl 用于讀取 Excel 文件所有的工作表
我們來看看如何用 pandas 完成需求:
- Path('案例1').glob('*.xlsx') ,獲得指定文件夾(案例1)中的所有 Excel 文件路徑
- pd.read_excel(f) ,加載 Excel 數(shù)據(jù)
- pd.concat(dfs) ,合并多個(gè)數(shù)據(jù),pandas 自動(dòng)進(jìn)行索引對齊
關(guān)于 pathlib 的知識(shí)點(diǎn),請關(guān)注公眾號(hào)的入門必備系列文章
上面是普通的寫法,這場景我傾向于使用推導(dǎo)式:
推導(dǎo)式內(nèi)容,請看 數(shù)據(jù)大宇宙 > Python入門必備 > 必備知識(shí) > 細(xì)講Python推導(dǎo)式
案例2
有時(shí)候,表格中沒有必要的信息,如下:
- 這次表格中沒有部門列,部門的信息只能在文件名字中獲取
- df['部門'] = f.stem ,pandas 中添加一列值是非常容易。f.stem 是不帶后綴的文件名字
為什么上面不用推導(dǎo)式呢?因?yàn)橥茖?dǎo)式只適合一行連續(xù)調(diào)用的寫法,當(dāng)然這里還是可以使用推導(dǎo)式實(shí)現(xiàn)的:
- DataFrame.assign(部門=f.stem) 是一個(gè)添加列并且返回修改后的數(shù)據(jù)的方法,特別適合這種場景下使用
各種創(chuàng)建或移除行列數(shù)據(jù)的應(yīng)用,請留意專欄文章
總結(jié)
以上是生活随笔為你收集整理的c++控制台应用每一列数据如何对齐_懂Excel就能轻松入门Python数据分析包pandas(十六):合并数据...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 车库遥控器丢了怎么配
- 下一篇: js string转number_Nod