處理大型CSV文件時,可能會遇到內存限制等問題。一種常見的解決方案是使用Python的pandas庫,它允許我們選擇性地讀取文件的特定部分,而不是一次性加載整個文件,這在面對大數據集時尤為重要。
本教程將詳細介紹如何使用Python和pandas庫來選擇性地讀取和處理大型CSV文件中的字段,以避免內存不足的問題。
在此步驟中,我們通過usecols參數選擇性地讀取感興趣的列,以減輕內存負擔。
import pandas as pd# 指定CSV文件的路徑csv_file_path = "<文件路徑>"# 指定需要提取的字段列名selected_columns = ['unified_code', 'reg_addr']# 使用pd.read_csv()讀取指定列的數據data = pd.read_csv(csv_file_path, usecols=selected_columns)# 顯示讀取的數據print(data.head())# 保存讀取的數據到新的CSV文件中csv_output_file_path = "<輸出文件路徑>"data.to_csv(csv_output_file_path, index=False)print("數據已保存為CSV文件:", csv_output_file_path)
我們有兩個CSV文件,需要基于'unified_code'字段進行合并。pandas的merge函數允許我們進行這樣的操作。
import pandas as pd# 指定兩個CSV文件的路徑csv_file1_path = "<文件1路徑>"csv_file2_path = "<文件2路徑>"# 讀取兩個CSV文件data1 = pd.read_csv(csv_file1_path)data2 = pd.read_csv(csv_file2_path)# 基于'unified_code'字段合并數據merged_data = data1.merge(data2, on='unified_code', how='inner')# 顯示合并后的數據print(merged_data.head())# 保存合并后的數據到新的CSV文件中merged_csv_file_path = "合并后的數據.csv"merged_data.to_csv(merged_csv_file_path, index=False)print("匹配成功的數據已保存為CSV文件:", merged_csv_file_path)
最后,我們為每行數據生成一個唯一的ID,對數據進行篩選,并將結果保存到新的CSV文件中。
import pandas as pd# 指定CSV文件的路徑csv_file_path = "合并后的數據.csv"# 讀取CSV文件data = pd.read_csv(csv_file_path)# 為每一行生成唯一的IDdata['ID'] = range(1, len(data) + 1)# 選擇性保留字段selected_columns = ['ID', 'unified_code', 'reg_addr']data = data[selected_columns]# 保存清理后的數據到新的CSV文件中output_csv_file_path = "clean.csv"data.to_csv(output_csv_file_path, index=False)print("數據已保存為CSV文件:", output_csv_file_path)
本教程演示了如何使用Python和pandas庫對大型CSV文件進行選擇性讀取、合并和保存,以避免內存不足的問題。這種方法在處理大數據集時非常有用,能夠顯著提高數據處理的效率。
本文鏈接:http://www.www897cc.com/showinfo-26-13674-0.html使用Python處理大型CSV文件
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: 改造Sentinel源碼,實現Nacos雙向通信!
下一篇: 面試中如何答好:FutureTask