zoukankan      html  css  js  c++  java
  • py3 读入和写入csv,txt文件

    import numpy as np
    import pandas as pd
    import time
    import datetime
    import csv

     http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_csv.html

    直接保存为csv,汉子也可以被导出:
    DataFrame.to_csv(path_or_buf=Nonesep=''na_rep=''float_format=Nonecolumns=Noneheader=Trueindex=Trueindex_label=Nonemode='w'encoding=Nonecompression=Nonequoting=Nonequotechar='"'line_terminator=' 'chunksize=Nonetupleize_cols=Falsedate_format=Nonedoublequote=Trueescapechar=Nonedecimal='.')

    保存为csv后,再把文件名字改为txt后缀:

    df_merge.to_csv('aa1.csv',index_label=None)
    csv_name='aa1.csv'
    new_name=os.path.splitext('aa1.csv')[0]+'.txt'
    os.rename(csv_name,new_name)

     

    1)读入数据框

    os.chdir(r"D:jczjDesktop项目德甲")
    allgame2=pd.read_excel(r"D:jczjDesktop项目德甲yuce_dejia.xlsx")

     

    2)

    写入csv

    import csv

    value=[]
    for i in range(3):
         a=i+1
         b=i*i
         v=(a,b)
         print(v)
        value.append(v)
         print(value)

    with open ('aa.csv','w',newline='') as data:
        bb=csv.writer(data,dialect=('excel'))
        bb.writerow(['col1_name1','col_name2'])
        bb.writerows(value)     #此处的 value 必须是列表才行
    data.close()

     

     

    3)

    把pandas 数据框中的数据写入 csv文件:

    假设 combos 是数据框,有5个列

      vv=combos.values   #取出数据框中的值,数据框的底层数据默认是array的,所以取出的这个数据也是数组,需要将数组转换为列表,才能被写入csv
      pp=list(vv)

    with open ('output.csv','w',newline='') as data2:
          bb=csv.writer(data2,dialect=('excel'))
          bb.writerow(['age','amount','grade','gender_1','predict']) #指明列名
          bb.writerows(pp)
    data2.close

     

    4)把pandas数据写入txt文档

    combos是pandas数据,格式如下:

         age  amount  grade   gender_1   intercept  predict

    0  18   208182    6          0.0              1         0.485540
    1  18   26141      8          1.0              1         0.519408
    2  18   325354    9          0.0              1         0.499659
    3  18   183147    5          1.0              1         0.479521
    4  18   13923      5          1.0             1          0.495424

    将其写入txt文件中:

    vv=combos.values
    pp=list(vv)

    f1=open('out.txt','w')
    for i in pp:
        a1=list(i)
        a2=str(a1)[1:-1].replace(',','')  #因为pandas数据底层是arrary数据,写入txt中的数据又必须是字符。i也是array数据,将i转成字符后,有 符号"【  】,"需要处理掉。
        f1.write(a2+' ')
    f1.close()

     

    5) 读入文件数据

    import codecs 

    f_in = codecs.open('kaola_imei_sort2','r','utf-8')
    source_dic = {}
    for i in f_in.readlines():
          line = i.strip().split('|')
          key = '|'.join(line[0:10])
          value = line[-1].split(',')
          source_dic[key] = value
    f_in.close()

    # 按行读入文本文件数据,并将数据按行写入字典

     

  • 相关阅读:
    求1+2+3+...+n
    孩子们的游戏(圆圈中最后剩下的数) 约瑟夫环
    扑克牌顺子
    翻转单词顺序列
    左旋转字符串
    和为S的两个数字
    和为S的连续正数序列
    CocoaPods 更新
    UITextView 动态高度计算(iOS7版)
    Mac 把图片反色
  • 原文地址:https://www.cnblogs.com/zhangbojiangfeng/p/5971602.html
Copyright © 2011-2022 走看看