python 資料分析基礎一 csv檔案處理(2)

2021-10-02 18:45:25 字數 2985 閱讀 1097

前文已經說過如何去通過基礎python處理csv檔案的行,一系列的問題

本篇博文重點為利用pandas模組去較為簡單地處理這些複雜的問題

python pandas模組:

**:

import pandas as pd

input_file="supplier_data.csv"

out_file="the_first_csv.csv"

date_frame=pd.read_csv(input_file)#frame:框架,架構

#print(date_frame)

date_frame.to_csv(out_file,index=false)#index=false 表示輸出不顯示索引值

**比起使用基礎python來說非常的簡短,當然也需要去記憶一些新的函式。這些對於使用pandas來說都是必要的。

兩個函式;

pandas.read_csv():這個函式可以返回參量csv檔案的資料框。

資料框:用於儲存多行多列資料的一種結構

pandas.to_csv():一般用法的話就是 :pandas.to_csv(write_object,index=false) 其中,前參量是寫入檔案

後參量的意思是 不顯示索引,如果我們現實索引的話,在我們寫入檔案的第一列往往會多出一行0,1,2…如圖:

**的意思很簡潔,就是把第乙個檔案中的資料框取出來,放到第二個檔案裡面,這樣理解就夠了

我們使用基礎python必須把他們一系列的列表提取出來,進行判斷與操作

而pandas則更為方便

利用pandas模組,使行中的值屬於某個集合

**

import pandas as pd

date_list=['1/30/14','1/20/14']

input_file="supplier_data.csv"

out_file="the_first_csv.csv"

script_frame=pd.read_csv(input_file)

date_frame=script_frame.loc[script_frame['purchase date'].isin(date_list),:]#isin()函式

date_frame.to_csv(out_file,index=false)

前五行不做詳解,重點在第六行:

loc()函式與isin()函式

loc()函式 pandas模組的loc函式,可以實現對行和列的一系列操作loc()函式的兩個參量loc(1,2)參量1表示對行的操作,而參量2表示對列的操作。

我們這裡需要引用名為:"purchase date"的這一列的變數,我麼使用類似於字典鍵的方式去引用。這樣可以引用,其實是這麼乙個結構,如圖:

可以看到,每乙個資料前都有索引的存在,這也順便清楚了前面的index=fasle存在的疑惑

isin函式:其實就是判斷這裡面的每一行資料是否存在於這個列表中。

而一旦存在的話,便利用loc函式將這樣乙個資料框提取出來。

2. 利用pandas模組判斷,行中的值匹配某個模式或者正規表示式

**:

#利用pandas模組 loc()函式 使行中的值匹配某個模式或者正規表示式

import pandas as pa

input_file="supplier_data.csv"

out_file="the_first_csv.csv"

script_frame=pd.read_csv(input_file)#從csv檔案中讀出資料框結構

date_frame=script_frame.loc[script_frame['invoice number'].str.startswith("001-"),:]

date_frame.to_csv(out_file,index=false)

#starswith與endswith

#三個參量((strs),start,end) start與end是索引,用於判斷位置

那麼這裡的第五行又出現了新花樣:

date_frame=script_frame.loc[script_frame[『invoice number』].str.startswith(「001-」),:]

前面的不做詳解。重點在這一行。我們這裡的標題是,使行中的值可以匹配某種模式或者正規表示式。這裡是 模式,這裡我的目的是,提取出"invoice number"中前三個字元符合"001-"的格式。依然使用loc函式,但是後面我們使用了.str.startswith的格式

詳解及拓展:

str.startswith()是用於檢測字串是否以指定的字首開始

str.startswith(substr, beg=0,end=len(string));

*str:判斷的字串

*substr:用於檢測的子字串

*beg:開始的索引位置

*end:結束的位置

endwith函式

str.endwith(substr,start,end)

*str:同上

*****都同上

python基礎分析 資料分析 Python基礎

學python前要明確其使用目的。學python是為了進行資料分析,所以現階段最主要的任務是了解python的最基礎知識,然後通過運用python進行資料分析的專案,從而學會使用python。一 資料型別 1 整數 浮點數 字串 2 列表 list 2list.count obj 統計某個元素在列表...

python資料分析 numpy基礎(一)

1 建立numpy陣列 import numpy as np print 使用普通一維陣列生成numpy一維陣列 data 6,7.5,8,0,1 arr np.array data print arr print 列印元素型別 print arr.dtype print print 使用普通二維陣...

Python資料分析基礎入門(一)

1 基本運算 多重賦值 a,b,c 2,3,4相當於 a 2 b 3 c 4字串操作 s i like python s very much 將s以空格分割,得到列表 i like python very much s.split 2 判斷與迴圈 判斷語句 python用縮排對齊作為語句層次的標記,...