转载请注明出处: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读写数据