python讀取文本中數(shù)據(jù)并轉(zhuǎn)化為DataFrame的實例
在技術(shù)問答中看到一個這樣的問題,感覺相對比較常見,就單開一篇文章寫下來。
從純文本格式文件 “file_in”中讀取數(shù)據(jù),格式如下:
需要輸出成“file_out”,格式如下:
數(shù)據(jù)的原格式是“類別:內(nèi)容”,以空行“\n”為分條目,轉(zhuǎn)換后變成一個條目一行,按照類別順序依次寫出內(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 #對每行清除前后空格(如果有的話),然后用":"分割 for kv in [line.strip().split(':')]: #按照鍵,把值寫進去 dict_data.setdefault(kv[0],[]).append(kv[1]) #print(dict_data)看看效果 #這是把鍵讀出來成為一個列表 columnsname=list(dict_data.keys()) #建立一個DataFrame,列名即為鍵名,也就是nam,age…… frame = DataFrame(dict_data,columns=columnsname) #把DataFrame輸出到一個表,不要行名字和列名字 frame.to_csv('file_out0.txt',index=False,header=False)
以上這篇python讀取文本中數(shù)據(jù)并轉(zhuǎn)化為DataFrame的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python3.5 + sklearn利用SVM自動識別字母驗證碼方法示例
這篇文章主要給大家介紹了關(guān)于Python3.5 + sklearn利用SVM自動識別字母驗證碼的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Python具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-05-05Python 實現(xiàn)將numpy中的nan和inf,nan替換成對應(yīng)的均值
這篇文章主要介紹了Python 實現(xiàn)將numpy中的nan和inf,nan替換成對應(yīng)的均值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06Python OpenCV實現(xiàn)攝像頭人臉識別功能
這篇文章主要介紹了Python OpenCV實現(xiàn)攝像頭人臉識別,使用Python 3和OpenCV進行攝像頭人臉識別的基本步驟,本文結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2023-07-07