轉載請注明出處:python讀取某幾列CSV數據,再寫入新的文件
測試數據:100萬條。7列100萬行。
操作:刪除第一列,保留其他列的數據,寫入到新文件中。
源數據:
結果數據:
'''
使用python的pandas庫讀取某幾列CSV文件,再寫入新的文件。
'''
import pandas as pd
import time
#處理函數
def readwrite(input_file,output_file):
#pd.read_csv() 將CSV文件讀入並轉化為數據框(DataFrame)形式。
#參數設置:
#filepath_or_buffer:str 文件路徑
#sep:str 指定分隔符,默認為','。
#delimiter:str 定界符/備選分隔符(如果指定該參數,則sep參數失效),默認為None。
#header:int/list 指定第幾行作為列名/表頭;默認header=0(即第一行作為列名);如果沒有列名的話,設置header=None。
#names:array 指定列的名稱。一般沒有列名時(即header=None),可以用來添加列名。
#nrows:int 要讀取的文件的行數,對於大文件很有用。
#skiprows:list-like/int 文件開頭要跳過的行數。
#encoding:str 用於utf的編碼。utf-8。
data = pd.read_csv(input_file,sep=',',header=None)
#pd.to_csv() 將數據框(DataFrame)寫入本機電腦。
#參數設置:
#path_or_buf:str 文件路徑
#sep:str 分隔符
#na_rep:str 將NaN轉換為特定值。
#columns:list 指定哪些列寫進去。
#header:int/lis 默認header=0;如果沒有列名的話,設置header=None。
#index 索引,默認True,寫入索引。
data.to_csv(output_file,sep=',',columns={1,2,3,4,5,6},header=None,index=False)
#計時函數
def getRunTimes( fun ,input_file,output_file):
begin_time=int(round(time.time() * 1000))
fun(input_file,output_file)
end_time=int(round(time.time() * 1000))
print('Data processing completed')
print("Data processing total time:",(end_time-begin_time),"ms")
#調用
input_file="D:/xxxxx/csv_data/four_variables/s1000000.csv"
output_file="D:/xxxxx/csv_data/three_variables/s1000000.csv"
readwrite(input_file,output_file)
getRunTimes(readwrite,input_file,output_file) #使用dataframe讀寫數據