溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python怎么處理雜亂無序的數(shù)據(jù)

發(fā)布時間:2021-11-26 11:27:37 來源:億速云 閱讀:284 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要講解了“Python怎么處理雜亂無序的數(shù)據(jù)”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Python怎么處理雜亂無序的數(shù)據(jù)”吧!

問題抽絲剝繭

這個問題算是群友答疑。如果說同事或者老板給你一堆這樣的數(shù)據(jù),你估計會抓狂,該怎么處理呢?

Python怎么處理雜亂無序的數(shù)據(jù)  

仔細觀察上面數(shù)據(jù)可以發(fā)現(xiàn),該數(shù)據(jù)有如下2個主要特點

  • ① 每一行的數(shù)據(jù)長度不同。第一行和第三行有4個屬性,第二行有5個屬性。
  • ② 不同行的屬性值,并不是對應排列。
 

解題思路剖析

你可能會想,直接用Excel分裂。其實并不可行,因為不同行的屬性值,并不是對應排列。Excel分列導致的結果就是:不同的屬性,存在于相同的行。

Python怎么處理雜亂無序的數(shù)據(jù)  

放棄Excel那條路之后,我就只能尋求Python的幫助了。我們要根據(jù)數(shù)據(jù)的特點,選擇合適的數(shù)據(jù)存儲方法。最終問題就轉化為:構造數(shù)據(jù)源,然后創(chuàng)建DataFrame即可。

然后根據(jù)我們這個數(shù)據(jù)的特點,我選擇構造字典組成的列表這樣一個數(shù)據(jù),并利用它來創(chuàng)建DataFrame。

Python怎么處理雜亂無序的數(shù)據(jù)  

觀察我提供的這個案例和待解決的問題,簡直異曲同工。我們同樣可以將上述數(shù)據(jù)的每一行,都變成一個個鍵值對組成的字典。然后最外層用一個大列表,將所有的字典包含起來。

 

完整代碼

 1)首先需要構造練習數(shù)據(jù)
import pandas as pd
x = {"信息":["年齡:12;性別:女;身高:22;愛好:打球",
             "年齡:12;說明:歷史數(shù)據(jù);性別:女;身高:22;愛好:打球",
             "生日:2月3日;年齡:12;性別:女;愛好:打球"]
    }
df = pd.DataFrame(x)
df
 

結果如下:

Python怎么處理雜亂無序的數(shù)據(jù)  
 2)構造字典組成的列表
tmps_list = []
for data in df["信息"].values:
    tmp_dict = {}
    for kv in data.split(";"):
        k, v = kv.split(":")
        tmp_dict[k] = v
    tmps_list.append(tmp_dict)
tmps
 

結果如下:

Python怎么處理雜亂無序的數(shù)據(jù)  
 3)創(chuàng)建DataFrame
df = pd.DataFrame(tmps)
df
 

結果如下:

Python怎么處理雜亂無序的數(shù)據(jù)  

感謝各位的閱讀,以上就是“Python怎么處理雜亂無序的數(shù)據(jù)”的內容了,經(jīng)過本文的學習后,相信大家對Python怎么處理雜亂無序的數(shù)據(jù)這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI