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

創(chuàng)新互聯(lián)是專業(yè)的鄂城網(wǎng)站建設(shè)公司,鄂城接單;提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行鄂城網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
仔細(xì)觀察上面數(shù)據(jù)可以發(fā)現(xiàn),該數(shù)據(jù)有如下2個(gè)主要特點(diǎn):
- 每一行的數(shù)據(jù)長(zhǎng)度不同。第一行和第三行有4個(gè)屬性,第二行有5個(gè)屬性。
- 不同行的屬性值,并不是對(duì)應(yīng)排列。
解題思路剖析
你可能會(huì)想,直接用Excel分裂。其實(shí)并不可行,因?yàn)椴煌械膶傩灾担⒉皇菍?duì)應(yīng)排列。Excel分列導(dǎo)致的結(jié)果就是:不同的屬性,存在于相同的行。
[[339071]]
放棄Excel那條路之后,我就只能尋求Python的幫助了。我們要根據(jù)數(shù)據(jù)的特點(diǎn),選擇合適的數(shù)據(jù)存儲(chǔ)方法。最終問題就轉(zhuǎn)化為:構(gòu)造數(shù)據(jù)源,然后創(chuàng)建DataFrame即可。
然后根據(jù)我們這個(gè)數(shù)據(jù)的特點(diǎn),我選擇構(gòu)造字典組成的列表這樣一個(gè)數(shù)據(jù),并利用它來創(chuàng)建DataFrame。
觀察我提供的這個(gè)案例和待解決的問題,簡(jiǎn)直異曲同工。我們同樣可以將上述數(shù)據(jù)的每一行,都變成一個(gè)個(gè)鍵值對(duì)組成的字典。然后最外層用一個(gè)大列表,將所有的字典包含起來。
完整代碼
1)首先需要構(gòu)造練習(xí)數(shù)據(jù)
- import pandas as pd
- x = {"信息":["年齡:12;性別:女;身高:22;愛好:打球",
- "年齡:12;說明:歷史數(shù)據(jù);性別:女;身高:22;愛好:打球",
- "生日:2月3日;年齡:12;性別:女;愛好:打球"]
- }
- df = pd.DataFrame(x)
- df
結(jié)果如下:
2)構(gòu)造字典組成的列表
- 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
結(jié)果如下:
3)創(chuàng)建DataFrame
- df = pd.DataFrame(tmps)
- df
結(jié)果如下:
本文題目:領(lǐng)導(dǎo)給了一堆無序雜亂的數(shù)據(jù),我寫了個(gè)Python自動(dòng)化腳本
文章鏈接:http://www.dlmjj.cn/article/cdgcgjp.html


咨詢
建站咨詢
