背景
數(shù)據(jù)分列在數(shù)據(jù)處理中很常見苫拍,數(shù)據(jù)分列一般指的都是字符串分割芜繁,這個功能在Excel里面很實用,處理數(shù)據(jù)非常方便绒极,那么在pandas數(shù)據(jù)框中怎么使用呢骏令,今天這篇文章就來詳細介紹下
分列
模擬數(shù)據(jù)
以下面這9行數(shù)據(jù)作為案例來進行處理
模擬數(shù)據(jù)
讀取數(shù)據(jù)
#加載庫
import pandas as pd
#讀取數(shù)據(jù)
data=pd.read_excel('data.xlsx')
讀取數(shù)據(jù)
分割符號分列
主要運用了pandas里面列的str
屬性,str
有很多的方法垄提,感性的同學(xué)可以自動查找伏社,這里不做過多介紹。分割字符用到的就是split
方法
重點:在分割前一定要把該列強制轉(zhuǎn)換為字符型
#對指定列進行分割
split_data_1=data['分割字符'].astype('str').str.split('&',expand=True)
#修改分割后的字段名稱
split_data_1.columns=['D_'+str(i) for i in split_data_1.columns]
#與原始數(shù)據(jù)進行合并
data_result=data.join(split_data_1)
分割符號
固定寬度分列
pandas里面沒有固定分割的相應(yīng)函數(shù)塔淤,這里巧妙的運用了輔助函數(shù)來進行處理摘昌,這里的固定寬度為1
#定義個輔助函數(shù)
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]
#先利用輔助函數(shù),再進行分割
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]
#與原始數(shù)據(jù)進行合并
data_result=data.join(split_data_2)
固定寬度
歷史相關(guān)文章
以上是自己實踐中遇到的一些問題聪黎,分享出來供大家參考學(xué)習(xí),歡迎關(guān)注微信公眾號:DataShare 备恤,不定期分享干貨