127、使用pandas讀取文本文件

2021-01-14 python大大

python小白社區默言_e0a2同學,是一個持之以恆的好同學。以下是他的作品。

pandas提供了一些用於將表格型數據讀取為DataFrame對象的函數,其中常用read_csv和read_table讀取文件。

0.png下面出現的例子中需要讀取的文件都存放在我自己的電腦 D:Pytho\notebookpydata-book-masterch06 中。使用read_csv讀入csv文件:

1.png使用read_table讀入csv文件:

2.png如果讀取一個文件沒有標題行,可以使用header參數自動分配標題行:

3.png或者使用names參數指定需要的列表頭:

4.png還可以使用index_col參數指定DataFrame的索引(也就是修改行表頭):

5.png有些表格可能使用空白符或者字符串去分隔欄位,這時可以使用正則表達式作為read_table分隔符:

6.png缺失值處理缺失數據經常是要麼沒有(空字符串),要麼用某個標記值表示。源文件:

7-0.png默認情況下,pandas會用NaN進行標記:

7.png可以用一個字典為各列指定不同的NA標記值:

8.png逐塊讀取文本文件在處理很大的文件時,我們可能只需讀取文件很小的一部分。如果只想讀取幾行文件,可以通過nrows參數進行指定即可:

9.png

10.png要逐塊讀取文件,需要設置chunksize(行數)參數:

11.pngread_csv返回的一個TextParser對象可以根據chunksize對文件進行逐塊迭代。如下面的例子,將值計數聚合到「key」列中:

12.png結果為:

13.png原始碼為:# coding: utf-8# # 使用pandas讀取文本文件# In[1]:import numpy as npfrom pandas import Series,DataFrameimport pandas as pd# ### 方法一:使用read_csv讀入csv文件# In[2]:df = pd.read_csv('D:\Python\notebook\pydata-book-master\ch06\ex1.csv')print(df)# ### 方法二:使用read_table讀入csv文件# In[3]:# 不指定分隔符的情況df2 = pd.read_table('D:\Python\notebook\pydata-book-master\ch06\ex1.csv')print(df2)# In[4]:# 使用參數sep指定分隔符情況df3 = pd.read_table('D:\Python\notebook\pydata-book-master\ch06\ex1.csv',sep=',')print(df3)# In[5]:'''如果讀取的文件沒有列表頭,使用header參數自動分配列表頭'''df_ex2 = pd.read_csv('D:\Python\notebook\pydata-book-master\ch06\ex2.csv')print(df_ex2)# In[6]:# 自動分配表頭df_ex2 = pd.read_csv('D:\Python\notebook\pydata-book-master\ch06\ex2.csv',header=None)print(df_ex2)# In[7]:# 使用names參數指定列表頭df_ex2_name = pd.read_csv('D:\Python\notebook\pydata-book-master\ch06\ex2.csv',names=['一','二','三','四','message'])print(df_ex2_name)# In[8]:# 使用index_col參數指定DataFrame的索引(行表頭)names=['一','二','三','四','message']df_ex2_DF= pd.read_csv('D:\Python\notebook\pydata-book-master\ch06\ex2.csv',names=names,index_col='message')print(df_ex2_DF)# ### 使用正則表達式作為read_table分隔符# In[9]:list(open('D:\Python\notebook\pydata-book-master\ch06\ex3.txt'))# In[10]:# 使用正則表達式s+處理空白符分隔result = pd.read_table('D:\Python\notebook\pydata-book-master\ch06\ex3.txt',sep='s+')print(result)# ### 缺失值處理# In[11]:# 默認使用NaN填充缺失值df_na = pd.read_csv('D:\Python\notebook\pydata-book-master\ch06\ex5.csv')print(df_na)# In[12]:# 使用isnull轉為布爾值來標記NA值pd.isnull(df_na)# In[13]:print(df_na)# 使用一個字典把各列指定值轉為NA值new_na = {'message':['foo'],'c':[11],'something':['two']}new_na_values = pd.read_csv('D:\Python\notebook\pydata-book-master\ch06\ex5.csv',na_values=new_na)print(\n new_na_values\n',new_na_values)# ### 逐塊讀取文本文件# In[14]:# 讀取一個10000行5列的.csv文件all_Csv = pd.read_csv('D:\Python\notebook\pydata-book-master\ch06\ex6.csv')print(all_Csv)# In[15]:# 只讀取5行文件part_Csv = pd.read_csv('D:\Python\notebook\pydata-book-master\ch06\ex6.csv',nrows=5)print(part_Csv)# In[16]:# 根據chunksize對文件進行逐塊迭代chunker = pd.read_csv('D:\Python\notebook\pydata-book-master\ch06\ex6.csv',chunksize=1000)print(chunker)# In[17]:# 統計 key 這一列中各個值出現的次數tot = Series([])for piece in chunker: tot = tot.add(piece['key'].value_counts(),fill_value=0) #print(tot) # 對結果進行降序排序new_tot = tot.sort_values(ascending=False)print(new_tot)# In[18]:# 選取前10行的結果顯示df_tot = new_tot[:10]print(df_tot)

相關焦點

  • 十分鐘學習pandas!pandas常用操作總結!
    學習Python, 當然少不了pandas,pandas是python數據科學中的必備工具,熟練使用pandas是從sql boy/girl 跨越到一名優秀的數據分析師傅的必備技能。這篇pandas常用操作總結幫大家回顧下pandas的常用語法,尤其是我們分析數據時常用的方法。
  • Pandas文本數據處理 | 輕鬆玩轉Pandas(4)
    3.5 方法摘要3.6 【彩蛋】訂閱文章福利import numpy as npimport pandas as pd為什麼要用str屬性文本數據也就是我們常說的字符串比如,我想要將每個城市都轉為小寫,可以使用如下的方式。
  • 如何通過一頓飯來說明NumPy與pandas的功用
    上圖展示了NumPy、pandas(以及matplotlib)的歷史總共下載量等信息。可以看出,兩者總共有過近80萬的下載量,如果按照市場價值計量,兩者合計價值近1500萬美元,但它們都可以免費使用。經常是和其他工具一起使用,如數值計算工具NumPy和SciPy,分析庫statsmodels與scikit-learn,以及數據可視化庫matplotlib。其中NumPy則是構建pandas的基礎,後者大量借鑑了NumPy編碼風格。
  • Pandas時間序列詳解 | 輕鬆玩轉Pandas(6)
    (字符串)打交道,能否快速將文本數據轉為時間戳呢?我們可以使用 date_range 和 bdate_range 來完成時間戳範圍的生成。如果不想移動值,而是移動日期索引,可以使用 freq 參數,它可以接受一個 DateOffset 類或其他 timedelta 類對象或一個 offset 別名,所有別名詳細介紹見:Offset Aliases(http://pandas.pydata.org/pandas-docs/stable/timeseries.html#offset-aliases)。
  • Python基礎 | pandas.dataframe 專題使用指南
    1.組建方法——pd.DataFramepd.DataFrame(data=None, index=None, columns=None)data= 數據index= 索引,即行名、行表頭columns= 列名、列表頭
  • pandas數據處理:常用卻不甚了解的函數,pd.read_excel()
    人們經常用pandas處理表格型數據,時常需要讀入excel表格數據,很多人一般都是直接這麼用:pd.read_excel(「文件路徑文件名」),再多一點的設置可能是轉義一下路徑中的斜槓,一旦原始的excel表不是很規整,這樣簡單讀入勢必報錯!
  • 別再用Pandas處理大數據了!現在你擁有更好的選擇
    筆者消耗在等待Pandas讀取一堆文件或對其進行匯總計算上的時間太多太多了。最近,筆者發現了一個更好的工具可以更新數據處理管道,使這些CPU內核正常工作!筆者使用該工具進行繁重的數據處理,例如讀取包含10 G數據的多個文件,對其進行過濾並匯總。
  • Pandas>>讀取文件時不去掉前面的0
    在我們處理數據時,有時會碰到csv或excel中,有時某列數據值會「000+1到9數字」,在用python read_csv讀取數據時,往往會將前面「000」給去掉怎樣才能完整維護數據一致性呢,有兩種方法:
  • 精通Pandas,從零基礎到中級運用,看這一篇就夠了
    它的好處在於你可以只用pandas語法,但是卻擁有好幾人的功力,就跟天龍八部的慕容復一樣。pandas就像Python中的Excel:它使用表格(即DataFrame)並對數據進行轉換操作。但它能做的事情其實還有很多。如果你已經熟悉Python,你可以直接進入第3段。如果你還不熟悉Python,建議你一步步從頭開始。讓我們開始吧!
  • Pandas的介紹與基本使用
    1、什麼是Pandas當大家談論到數據分析時,提及最多的語言就是Python和SQL,而Python之所以適合做數據分析,就是因為他有很多強大的第三方庫來協助,pandas就是其中之一,它是基於Numpy構建的,正因pandas的出現,讓Python語言也成為使用最廣泛而且強大的數據分析環境之一。
  • 柳小白Python學習筆記34 pandas對Excel表格基本信息的查看
    程序讀取慢不說,也與我們想高效快捷地處理事情的初衷不符。那麼要怎麼做呢?接下來就學習幾個快速查看工作表數據信息的方法。一、使用head()重新設置預覽行數先用昨天學過的head()方法預覽工作表的前10行數據。昨天是沒有給head()傳入參數,默認預覽前5行數據。
  • 數據太多而無法使用?快試試這個Kaggle大數據集高效訪問教程
    Answer Correctness Prediction數據集由10列,超1億行的數據組成,在Kaggle Notebook中使用pd.read_csv方法讀取會導致內存不足,因此本文將該數據集做為典型示例。
  • 如何在Linux終端中複製和粘貼文本、文件和文件夾
    使用Ctrl+ C和Ctrl+ V鍵盤快捷鍵很容易做到,但是在Linux終端上卻不是那麼簡單。您有幾種選擇可以完成工作。這是在Linux終端中複製和粘貼文本,文件和目錄的方法。複製和粘貼文字如果您只想在終端中複製一段文本,您要做的就是用滑鼠突出顯示該文本,然後按Ctrl+ Shift+ C進行複製。
  • Pandas萬花筒:讓繪圖變得更美觀
    筆者常用 Pandas 的繪圖功能快速地執行一些可視的數據探索,但在介紹數據洞察時,我會使用「更美觀」的繪圖庫(如 Plotly 或 Bokeh )來重做可視化。自最新的 Pandas 版本0.25.3發布後,無需這樣做了,現在我們可以使用第三方可視化庫作為 Pandas 繪圖功能的後端。
  • Redmi手機「OTG功能」體驗:不僅能反向充電,還能讀取手機文件?
    OTG功能是目前大多數智慧型手機的一個設計,具備這個功能的手機可通過使用OTG轉接頭或轉接線連接其它設備,例如U盤,然後就可以在手機上直接讀取U盤文件。最近,我入手了一臺Redmi 10X 4G版,在體驗過程中我發現這臺手機的OTG功能不僅可以給另一臺手機反向充電,還可以直接讀取、傳輸另一臺手機的文件,我感覺挺有趣的,那麼這篇文章的主題就跟大家討論下Redmi 10X 4G版的OTG功能吧。
  • jQuery的Ajax實現無刷新請求、使用load()方法加載遠程文本文件
    對於AJAX技術的實現:使用原生的JavaScript可以實現,但是需要編寫更多的代碼來實現,且兼容性差,不同的瀏覽器需要編寫額外的代碼實現兼容。使用jQuery封裝好的AJAX對象來實現,代碼量小,使用簡單,且還兼容所有主流瀏覽器。
  • python批量操作文件——改文件名,合併多文件內容
    1.訪問作業系統os模塊os模塊是用來訪問作業系統相關功能的模塊,主要包含目錄及文件操作,執行命令和管理進程等功能。這裡主要用到它目錄及文件操作功能。4.os.listdir(dirname) 返回指定文件夾dirname下包含的文件或文件夾的名字列表。
  • 如何用Python讀取Excel中圖片?
    公眾號: 早起Python作者:劉早起大家好,在使用Python進行辦公自動化操作時,一定少不了與Excel表格的交互,我們通常是用pandas處理表格數據,但大多數情況下,都是讀取表格中的數值進行分析。
  • 12個最佳 Linux開源文本編輯器
    文本編輯器用途廣泛,可用於編寫代碼、編輯文本文件(比如配置文件)以及製作用戶指令文件等等。
  • 二次元日系遊戲製作工具 - live2dSDK使用入門
    理論篇會講解什麼是Live2d,怎麼使用Live2d的sdk以及一些細節內容的講解,包括動作播放,模型渲染,表情設置,自動眨眼,滑鼠追蹤,物理系統等等。實戰篇老師會跟大家一起使用Live2d的專屬框架做一個戀愛養成小遊戲。        最後,希望大家都能有所收貨,祝大家學習愉快。