Python pandas數據分列,分割符號&固定寬度

背景

數據分列在數據處理中很常見,數據分列一般指的都是字符串分割,這個功能在Excel里面很實用,處理數據非常方便,那么在pandas數據框中怎么使用呢,今天這篇文章就來詳細介紹下


分列

模擬數據

以下面這9行數據作為案例來進行處理


模擬數據

讀取數據

#加載庫
import pandas as pd

#讀取數據
data=pd.read_excel('data.xlsx')
讀取數據

分割符號分列

主要運用了pandas里面列的str屬性,str有很多的方法,感性的同學可以自動查找,這里不做過多介紹。分割字符用到的就是split方法
重點:在分割前一定要把該列強制轉換為字符型

#對指定列進行分割
split_data_1=data['分割字符'].astype('str').str.split('&',expand=True)

#修改分割后的字段名稱
split_data_1.columns=['D_'+str(i) for i in split_data_1.columns]

#與原始數據進行合并
data_result=data.join(split_data_1)
分割符號

固定寬度分列

pandas里面沒有固定分割的相應函數,這里巧妙的運用了輔助函數來進行處理,這里的固定寬度為1

#定義個輔助函數
def concat_split(x,width=1):
    result=''
    start=0
    while True:
        s=str(x)[start:start+width]
        
        if s:
            result =result + s + '&'
        else:
            break
        start=start+width
        
    return result[:-1]

#先利用輔助函數,再進行分割
split_data_2=data['固定寬度'].map(concat_split).str.split('&',expand=True)

#修改分割后的字段名稱
split_data_2.columns=['W_'+str(i) for i in split_data_2.columns]

#與原始數據進行合并
data_result=data.join(split_data_2)
固定寬度

歷史相關文章


以上是自己實踐中遇到的一些問題,分享出來供大家參考學習,歡迎關注微信公眾號:DataShare ,不定期分享干貨

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容