歡迎您光臨本站 註冊首頁

使用pandas庫對csv檔案進行篩選儲存

←手機掃碼閱讀     ljg58026 @ 2020-06-11 , reply:0

這個操作現在看來真沒啥難的,但是我找相關的資料真的找了好久。

多數大佬都是直接pandas官網甩我臉上,然後舉一個入門級的例子。

https://pandas.pydata.org/docs/reference/index.html

首先匯入pandas庫

     import pandas as pd        

然後使用read_csv來開啟指定的csv檔案

     df = pd.read_csv('./IP2LOCATION.csv',encoding= 'utf-8')        

這個函式裡面需要寫入csv檔案的路徑,如果是把csv檔案儲存到了python的工程資料夾下,則只需要./檔名即可,然後encoding='utf-8'是使用utf-8方式編碼,有時候需要換成gbk。

雖然我們讀取的是csv檔案,但其實由於我們使用的是pandas庫,所以我們實際獲得的是一個DataFrame的資料結構。

可以使用print(type(df))進行檢驗

     print(type(df))        

   

DataFrame 是表格型的資料結構。因此,我們可以將其當做表格。DataFrame 是以表格類似展示,而且還包含行標籤、列標籤。

我們可以新增一個列標籤,使用方法為pandas.DataFrame.columns

在我們的例子中DataFrame型別的變數為df,因此使用方法為df.columns,我們新增的列標籤為a、b、c、d、e、f

     df.columns = ['a','b','c','d','e','f']        

然後,我們想把某一列中等於特定值的那些行提取出來

可以將讀出來的內容當做一個列表,然後這個列表的元素是表中的每一行,然後這每一行也是一個列表,也就是列表中的列表。

比如,我想將表中第5列中值為Andhra Pradesh的行提取出來,並且由於我們之前定義了第五列的列標籤為e

因此程式碼為:

     data = df[df['e'] == 'Andhra Pradesh']        

最後我們可以透過pandas中的to_csv,來將篩選出來的資料儲存到新的csv檔案中。

     data.to_csv('my_IP2LOCATION.csv')        

用法為表名.to_csv('所要儲存地方的路徑/表名.csv')

最後總結一下我們的程式碼

  import pandas as pd    df = pd.read_csv('./IP2LOCATION.csv',encoding= 'utf-8')  # print(type(df))  df.columns = ['a','b','c','d','e','f']  data = df[df['e'] == 'Andhra Pradesh']  data.to_csv('my_IP2LOCATION.csv')

   

IP2LOCATION.csv內容如下:

   

總共有759727行

然後經過我們的篩選後的my_IP2LOCATION.csv

   

只有3461行

PS:可以使用print(len(df.values))來檢視行數

 


[ljg58026 ] 使用pandas庫對csv檔案進行篩選儲存已經有557次圍觀

http://coctec.com/docs/python/shhow-post-238025.html