zoukankan      html  css  js  c++  java
  • pandas的read_csv()和to_csv()使用方法

    数据处理时经常会涉及csv读写操作,存在很多小tip,总结一下,方便使用。首先read_csv()是pandas的方法,to_csv()是DataFrame类的方法。

    1. read_csv()

    pandas.read_csv(
    filepath_or_buffer, sep=',', delimiter=None, header='infer', names=None, 
    index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, 
    dtype=None, engine=None, converters=None, true_values=None, false_values=None, 
    skipinitialspace=False, skiprows=None, nrows=None, na_values=None, keep_default_na=True, 
    na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False,
    iterator=False, chunksize=None, compression='infer', thousands=None, decimal=b'.',
    lineterminator=None, quotechar='"', quoting=0, escapechar=None, comment=None,
    encoding=None, dialect=None, tupleize_cols=None, error_bad_lines=True,
    warn_bad_lines=True, skipfooter=0, skip_footer=0, doublequote=True,
    delim_whitespace
    =False, as_recarray=None, compact_ints=None, use_unsigned=None,
    low_memory
    =True, buffer_lines=None, memory_map=False, float_precision=None )

    参数特别多,挑几个常用的总结一下

    • filepath_or_buffer:文件所在处的路径
    pd.read_csv('C:/Users/My/Path/test.csv') #绝对位置
    • sep:指定分隔符,默认为逗号','
    pd.read_csv('C:/Users/My/Path/test.csv',sep='?') #以?为分隔符,读取csv文件
    • delimiter:定界符,备选分隔符(如果指定该参数,则sep参数失效)
    pd.read_csv('C:/Users/My/Path/test.csv',sep='?',delimiter=' ') #以空格作为分隔符读取文件,分隔符'?'失效
    • header:默认设置为0(即第一行作为表头),如果没有表头的话,要修改参数,设置header=None
    pd.read_csv('C:/Users/My/Path/test.csv',header=None) #读出csv文件无表头
    • names:指定列的名称,用列表表示。
    pd.read_csv('C:/Users/My/Path/test.csv',names=['index','A','B']) #表头中各列名字为index,A,B
    • index_col:指定哪一列数据作为行索引,可以是一列,也可以多列
    pd.read_csv('C:/Users/My/Path/test.csv',index_col='A') #列为A的列作为行索引
    • prefix:给列名添加前缀。
    pd.read_csv('C:/Users/My/Path/test.csv',prefix='test') #当文件无表头,设置表头中列名全都加上test前缀,即test0,test1...
    • nrows:int, default None需要读取的行数(从文件头开始算起)
    pd.read_csv('C:/Users/My/Path/test.csv',nrows=10) #读取10行数据
    • encoding:读取文件是使用的编码方式
    pd.read_csv('C:/Users/My/Path/test.csv',encoding='utf-8') 
    • skiprows:需要忽略的行数(从文件开始处算起),或需要跳过的行号列表(从0开始),默认为None
    pd.read_csv('C:/Users/My/Path/test.csv',skiprows=5)  #跳过前五行数据(包括表头数据) 

     

    2. DataFrame.to_csv()

    DataFrame.to_csv(
    path_or_buf=None, sep=', ', na_rep='',float_format=None, columns=None, 
    header=True, index=True, index_label=None, mode='w', encoding=None, compression=None, 
    quoting=None, quotechar='"', line_terminator='
    ', chunksize=None, tupleize_cols=None, 
    date_format=None, doublequote=True, escapechar=None, decimal='.')

    参数相对少很多

    • path_or_buf: 保存文件的路径
    df.to_csv('test.csv') #相对位置,保存在os.getcwd()获得的路径下
    df.to_csv('C:/Users/My/Path/test.csv') #绝对位置
    • sep:输出文件的字段分隔符,默认为”,”
    df.to_csv('C:/Users/My/Path/test.csv',sep='?')#使用?分隔需要保存的数据,如果不写,默认是,
    • na_rep:替换空值,默认为‘’
    df.to_csv('C:/Users/My/Path/test.csv',na_rep='NA') #确实值保存为NA,如果不写,默认是空
    • float_format:浮点数格式
    df.to_csv('C:/Users/My/Path/test.csv',float_format='%.2f') #保留两位小数
    • cols: 保留某列数据,默认为None
    df.to_csv('C:/Users/think/Desktop/Result.csv',columns=['name']) #保存索引列和name列
    • header:是否保留列名,默认为True
    df.to_csv('C:/Users/My/Path/test.csv',header=0) #不保存列名
    • index:是否保留行索引,默认为True
    df.to_csv('C:/Users/My/Path/test.csv',index=False) #不保存行索引
    • index_label:索引的列标签,字符串或序列,或False,默认为None
    df.to_csv('C:/Users/My/Path/test.csv',index_label='Index') #行索引列名为'Index'
    • mode:str保存模式:值为‘str’,默认“w”
    df.to_csv('C:/Users/My/Path/test.csv',mode='a') #增量存入csv
    • encoding:输出文件中使用的编码,默认为“UTF-8”
    df.to_csv('C:/Users/My/Path/test.csv',encoding='utf_8_sig') #中文出现乱码,改用utf_8_sig可解决

     

  • 相关阅读:
    在SharePoint中实现Workflow(2):创建一个Workflow
    pku1384PiggyBank(动态规划)
    pku1088滑雪(记忆性搜索)
    hdu1251统计难题(初次接触字典树)
    详细解说 STL 排序(Sort)
    pku1631Bridging signals(动态规划题+二分搜索)
    pku1157LITTLE SHOP OF FLOWERS(简单动态规划题:摆放鲜花使审美价值达到最高)
    pku1067取石子游戏(博弈)
    pku2524Ubiquitous Religions(初次接触并查集)
    pku1050To the Max(求矩阵的最大子段和)
  • 原文地址:https://www.cnblogs.com/BobPong/p/13335776.html
Copyright © 2011-2022 走看看