這個操作現在看來真沒啥難的,但是我找相關的資料真的找了好久。
多數大佬都是直接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))來查看行數
