python读取某几列CSV数据,再写入新的文件


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

在这里插入图片描述