python?pandas分割DataFrame中的字符串及元組的方法實(shí)現(xiàn)
1.使用str.split()方法
可以使用pandas 內(nèi)置的 str.split() 方法實(shí)現(xiàn)分割字符串類(lèi)型的數(shù)據(jù),并將分割結(jié)果寫(xiě)入DataFrame中,以表格形式呈現(xiàn)。
語(yǔ)法:
Series.str.split(pat=None, n=-1, expand=False)
其中,pat是字符串或正則表達(dá)式,
n是一個(gè)整數(shù)數(shù)字,默認(rèn)為-1。為0或-1時(shí)即為最大次數(shù)的分割。其他數(shù)值因數(shù)值而定。
expand為布爾類(lèi)型,表示分割后是否轉(zhuǎn)換為DataFrame。默認(rèn)為False表示不轉(zhuǎn)換。
首先準(zhǔn)備一組DataFrame數(shù)據(jù):
import pandas as pd pd.set_option('display.unicode.east_asian_width', True) address = ['重慶 重慶市 南岸區(qū) ', '江蘇省 蘇州市 吳江區(qū) 吳江經(jīng)濟(jì)技術(shù)開(kāi)發(fā)區(qū)亨通路', '江蘇省 蘇州市 園區(qū) 蘇州市工業(yè)園區(qū)唯亭鎮(zhèn)陽(yáng)澄湖大道維納陽(yáng)光花園', '重慶 重慶市 南岸區(qū) 長(zhǎng)生橋鎮(zhèn)茶園新區(qū)長(zhǎng)電路', '安徽省 滁州市 明光市 三界鎮(zhèn)中心街10001號(hào)', '山東省 濰坊市 壽光市 圣城街道濰坊科技學(xué)院', '吉林省 長(zhǎng)春市 二道區(qū) 東盛街道彩虹風(fēng)景', '福建省 廈門(mén)市 湖里區(qū) 江頭街道廈門(mén)市湖里區(qū)祥店福滿園小區(qū)', '山西省 呂梁市 離石區(qū) 濱河街道山西省呂梁市離石區(qū)后瓦師巷', '河南省 濮陽(yáng)市 華龍區(qū) 中原路街道中原路與107國(guó)道交叉口東', '廣東省 深圳市 寶安區(qū) 松崗街道松崗鎮(zhèn)潭頭第二工業(yè)區(qū)', '河北省 石家莊市 辛集市 辛集鎮(zhèn)辛集市新皮革城7期125樓', '廣東省 深圳市 寶安區(qū) 松崗街道松崗鎮(zhèn)潭頭第二工業(yè)區(qū)', '貴州省 貴陽(yáng)市 花溪區(qū) 黨武鎮(zhèn)師范大學(xué)師大超市', '廣東省 深圳市 福田區(qū) 沙頭街道上沙龍秋村五十巷', '福建省 福州市 閩侯縣 上街鎮(zhèn)福州閩侯上街國(guó)賓大道', '湖北省 鄂州市 鄂城區(qū) 西山街道江碧路和馨居', '上海 上海市 松江區(qū)', '山東省 青島市 市北區(qū)', '山西省 晉中市 靈石縣', '浙江省 杭州市 余杭區(qū)'] df = pd.DataFrame() df['address'] = address print(df)
原數(shù)據(jù)示例如下:
將address分割成不同的地理級(jí)別,結(jié)果生成一個(gè)DataFrame對(duì)象:
print("=======================================================================") df1 = df['address'].str.split(' ', expand=True) print(df1)
結(jié)果如下:
最后將結(jié)果放入原DataFrame中。
df['省'] = series[0] df['市'] = series[1] df['區(qū)'] = series[2] df = df[['省', '市', '區(qū)']] print(df)
2.使用join()與split()方法結(jié)合
import pandas as pd pd.set_option('display.unicode.east_asian_width', True) address = ['重慶 重慶市 南岸區(qū) ', '江蘇省 蘇州市 吳江區(qū) 吳江經(jīng)濟(jì)技術(shù)開(kāi)發(fā)區(qū)亨通路', '江蘇省 蘇州市 園區(qū) 蘇州市工業(yè)園區(qū)唯亭鎮(zhèn)陽(yáng)澄湖大道維納陽(yáng)光花園', '重慶 重慶市 南岸區(qū) 長(zhǎng)生橋鎮(zhèn)茶園新區(qū)長(zhǎng)電路', '安徽省 滁州市 明光市 三界鎮(zhèn)中心街10001號(hào)', '山東省 濰坊市 壽光市 圣城街道濰坊科技學(xué)院', '吉林省 長(zhǎng)春市 二道區(qū) 東盛街道彩虹風(fēng)景', '福建省 廈門(mén)市 湖里區(qū) 江頭街道廈門(mén)市湖里區(qū)祥店福滿園小區(qū)', '山西省 呂梁市 離石區(qū) 濱河街道山西省呂梁市離石區(qū)后瓦師巷', '河南省 濮陽(yáng)市 華龍區(qū) 中原路街道中原路與107國(guó)道交叉口東', '廣東省 深圳市 寶安區(qū) 松崗街道松崗鎮(zhèn)潭頭第二工業(yè)區(qū)', '河北省 石家莊市 辛集市 辛集鎮(zhèn)辛集市新皮革城7期125樓', '廣東省 深圳市 寶安區(qū) 松崗街道松崗鎮(zhèn)潭頭第二工業(yè)區(qū)', '貴州省 貴陽(yáng)市 花溪區(qū) 黨武鎮(zhèn)師范大學(xué)師大超市', '廣東省 深圳市 福田區(qū) 沙頭街道上沙龍秋村五十巷', '福建省 福州市 閩侯縣 上街鎮(zhèn)福州閩侯上街國(guó)賓大道', '湖北省 鄂州市 鄂城區(qū) 西山街道江碧路和馨居', '上海 上海市 松江區(qū)', '山東省 青島市 市北區(qū)', '山西省 晉中市 靈石縣', '浙江省 杭州市 余杭區(qū)'] df = pd.DataFrame() df['address'] = address df = df.join(df['address'].str.split(' ', expand=True)) print(df)
運(yùn)行結(jié)果同上。
3. 使用apply方法分割元組
使用apply方法,將某個(gè)元素類(lèi)型為元組的列,將其元組中的元素拆分為不同的列。
import pandas as pd df = pd.DataFrame({'a': [1, 2, 3, 4, 5], 'b': [(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]}) print(df) df[['b1', 'b2']] = df['b'].apply(pd.Series) print(df)
或者也可以這樣寫(xiě):
import pandas as pd df = pd.DataFrame({'a': [1, 2, 3, 4, 5], 'b': [(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]}) print(df) df = df.join(df['b'].apply(pd.Series)) print(df)
參考資源: python數(shù)據(jù)分析從入門(mén)到精通 明日科技編著 清華大學(xué)出版社
到此這篇關(guān)于python pandas分割DataFrame中的字符串及元組的方法實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python pandas分割DataFrame字符串及元組內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python+selenium實(shí)現(xiàn)QQ郵箱自動(dòng)發(fā)送功能
這篇文章主要為大家詳細(xì)介紹了python+selenium實(shí)現(xiàn)QQ郵箱自動(dòng)發(fā)送功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01一個(gè)簡(jiǎn)單的python爬蟲(chóng)程序 爬取豆瓣熱度Top100以內(nèi)的電影信息
這篇文章主要為大家詳細(xì)介紹了一個(gè)簡(jiǎn)單的python爬蟲(chóng)程序,爬取豆瓣熱度Top100以內(nèi)的電影信息,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04解決Python 使用h5py加載文件,看不到keys()的問(wèn)題
今天小編就為大家分享一篇解決Python 使用h5py加載文件,看不到keys()的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02python優(yōu)雅實(shí)現(xiàn)代碼與敏感信息分離的方法
這篇文章主要介紹了python優(yōu)雅實(shí)現(xiàn)代碼與敏感信息分離的方法,在flask中,python-dotenv 可以無(wú)縫接入項(xiàng)目中,只要你的項(xiàng)目中存在 .env 或者 .flaskenv 文件,他就會(huì)提示你是否安裝 python-dotenv,需要的朋友可以參考下2022-05-05Pandas Series如何轉(zhuǎn)換為DataFrame
這篇文章主要介紹了Pandas Series如何轉(zhuǎn)換為DataFrame問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08Python測(cè)試網(wǎng)絡(luò)連通性示例【基于ping】
這篇文章主要介紹了Python測(cè)試網(wǎng)絡(luò)連通性,結(jié)合實(shí)例形式分析了Python通過(guò)發(fā)送ping請(qǐng)求測(cè)試網(wǎng)絡(luò)連通性相關(guān)操作技巧,需要的朋友可以參考下2018-08-08