python讀取文本中數(shù)據(jù)并轉(zhuǎn)化為DataFrame的實(shí)例
在技術(shù)問答中看到一個(gè)這樣的問題,感覺相對(duì)比較常見,就單開一篇文章寫下來。
從純文本格式文件 “file_in”中讀取數(shù)據(jù),格式如下:
需要輸出成“file_out”,格式如下:
數(shù)據(jù)的原格式是“類別:內(nèi)容”,以空行“\n”為分條目,轉(zhuǎn)換后變成一個(gè)條目一行,按照類別順序依次寫出內(nèi)容。
建議讀取后,使用pandas,把數(shù)據(jù)建立稱DataFrame的表格。這樣方便以后處理數(shù)據(jù)。但是原格式并不是通常的表格格式,所以要先做一些簡單的處理。
#coding:utf8 import sys from pandas import DataFrame #DataFrame通常來裝二維的表格 import pandas as pd #pandas是流行的做數(shù)據(jù)分析的包 #建立字典,鍵和值都從文件里讀出來。鍵是nam,age……,值是lili,jim…… dict_data={} #打開文件 with open('file_in.txt','r')as df: #讀每一行 for line in df: #如果這行是換行符就跳過,這里用'\n'的長度來找空行 if line.count('\n') == len(line): continue #對(duì)每行清除前后空格(如果有的話),然后用":"分割 for kv in [line.strip().split(':')]: #按照鍵,把值寫進(jìn)去 dict_data.setdefault(kv[0],[]).append(kv[1]) #print(dict_data)看看效果 #這是把鍵讀出來成為一個(gè)列表 columnsname=list(dict_data.keys()) #建立一個(gè)DataFrame,列名即為鍵名,也就是nam,age…… frame = DataFrame(dict_data,columns=columnsname) #把DataFrame輸出到一個(gè)表,不要行名字和列名字 frame.to_csv('file_out0.txt',index=False,header=False)
以上這篇python讀取文本中數(shù)據(jù)并轉(zhuǎn)化為DataFrame的實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python3.5 + sklearn利用SVM自動(dòng)識(shí)別字母驗(yàn)證碼方法示例
這篇文章主要給大家介紹了關(guān)于Python3.5 + sklearn利用SVM自動(dòng)識(shí)別字母驗(yàn)證碼的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05Python數(shù)組變形的幾種實(shí)現(xiàn)方法
本文主要介紹了Python數(shù)組變形的幾種實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05Python 實(shí)現(xiàn)將numpy中的nan和inf,nan替換成對(duì)應(yīng)的均值
這篇文章主要介紹了Python 實(shí)現(xiàn)將numpy中的nan和inf,nan替換成對(duì)應(yīng)的均值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06Python OpenCV實(shí)現(xiàn)攝像頭人臉識(shí)別功能
這篇文章主要介紹了Python OpenCV實(shí)現(xiàn)攝像頭人臉識(shí)別,使用Python 3和OpenCV進(jìn)行攝像頭人臉識(shí)別的基本步驟,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07