Mike的Python學院

程式語言、PYTHON資料分析、Python、Kaggle、資料分析、軟體程式設計、資料處理、差異分析、資料整合、Pandas

Mike Ku

Learn Code With Mike品牌創辦人

2022/01/19

3個Pandas套件比較CSV檔案資料之間的差異秘訣(上)

使用Pandas套件處理多份CSV檔案資料,相信是資料分析的過程中不可或缺的任務之一,其中,很常有機會比較各個資料集的相同與不相同資料內容,藉此來瞭解差異或檢核資料整合的結果是否有誤。
所以,本文就以Kaggle網站的「Coursera Course Dataset( https://www.kaggle.com/siddharthm1698/coursera-course-dataset )」及「Course Reviews on Coursera( https://www.kaggle.com/imuhammad/course-reviews-on-coursera )」兩個資料集為例,來分享Pandas套件比較CSV檔案資料集的常用方法。
Q: Pandas檢查兩個資料集的資料是否相同
首先,利用以下指令安裝Pandas套件:
$ pip install pandas
接著,使用Pandas套件的read_csv()方法(Method),來讀取「Coursera Course Dataset(coursea_data.csv)」資料集,如下範例:
import pandas as pd
df1 = pd.read_csv('coursea_data.csv')
print(df1)
以及讀取「Course Reviews on Coursera(Coursera_courses.csv)」資料集,如下範例:
import pandas as pd
df1 = pd.read_csv('coursea_data.csv')
df2 = pd.read_csv('Coursera_courses.csv')
print(df2)
這時候,就可以透過Pandas套件的equals()方法(Method),來比較兩個資料集是否有相同的維度(shape)、資料型態(dtype)及資料內容(elements),如下範例:
import pandas as pd
df1 = pd.read_csv('coursea_data.csv')
df2 = pd.read_csv('Coursera_courses.csv')
print(df1.equals(df2)) #執行結果False
很明顯這兩個資料集的維度(shape)並不相同,所以執行結果為False。
Q: Pandas查找兩個資料集之間的相同資料
知道了兩個資料集不相同後,有時會想要知道兩個資料集皆擁有的資料(交集)有哪些,在這樣的情況下,就能夠使用Pandas套件的merge()方法(Method),透過合併的方式來進行查找。
而Pandas套件在合併兩個資料集時,至少要有一個共同的欄位名稱,所以本文就將第一個資料集的「course_title」課程名稱欄位重新命名為「name」,來當作和第二個資料集合併的共同欄位,如下範例第4行:
import pandas as pd
df1 = pd.read_csv('coursea_data.csv').rename(columns={'course_title':'name'})
df2 = pd.read_csv('Coursera_courses.csv')
接下來,就可以利用Pandas套件的merge()方法(Method)進行合併,如下範例:
import pandas as pd
df1 = pd.read_csv('coursea_data.csv').rename(columns={'course_title':'name'})
df2 = pd.read_csv('Coursera_courses.csv')
result = df1.merge(df2, how='inner')
print(result)
由於我們想要查找兩個資料集皆擁有的資料,也就是所謂的交集,所以在Pandas套件的merge()方法(Method)中,需設定how關鍵字參數(Keyword Argument)為「inner」,即可得到兩個資料集的相同資料結果。
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike(https://www.learncodewithmike.com/2021/10/pandas-compare-values-between-dataframes.html
)網站觀看更多精彩內容。
2 0 598 0