python,java写csv文件总结

最常用的一种方法,利用pandas包

 
  1. import pandas as pd

  2.  
  3. #任意的多组列表

  4. a = [1,2,3]

  5. b = [4,5,6]

  6.  
  7. #字典中的key值即为csv中列名

  8. dataframe = pd.DataFrame({'a_name':a,'b_name':b})

  9.  
  10. #将DataFrame存储为csv,index表示是否显示行名,default=True

  11. dataframe.to_csv("test.csv",index=False,sep=',')

 

 
  1. a_name b_name

  2. 0 1 4

  3. 1 2 5

  4. 2 3 6

 

同样pandas也提供简单的读csv方法

 
  1. import pandas as pd

  2. data = pd.read_csv('test.csv')

 


另一种方法用csv包,一行一行写入

 
  1. import csv

  2.  
  3. #python2可以用file替代open

  4. with open("test.csv","w") as csvfile:

  5. writer = csv.writer(csvfile)

  6.  
  7. #先写入columns_name

  8. writer.writerow(["index","a_name","b_name"])

  9. #写入多行用writerows

  10. writer.writerows([[0,1,3],[1,2,3],[2,3,4]])

 

 
  1. index a_name b_name

  2. 0 1 3

  3. 1 2 3

  4. 2 3 4

 

 

读取csv文件用reader

 
  1. import csv

  2. with open("test.csv","r") as csvfile:

  3. reader = csv.reader(csvfile)

  4. #这里不需要readlines

  5. for line in reader:

  6. print line

以上内容来自我转载了以下,以防原博客被删

但上述方法只提到了如何直接写一个csv文件,却没有提如何在原有的csv在追加一行写文件

将源文件读取,将读取的信息与追加的信息一起写入

 

获取csv列标签的方法

在Python中,经常会去读csv文件,如下

import pandas as pd
import numpy as np
df = pd.read_csv("path.csv")
data = np.array(df.loc[:,:])
通过这种方式得到的data,不包含第一行,一般来说,第一行即是列标签。那么如何获取第一行的内容呢。如下

column_headers = list(df.columns.values)

 

 

java没有特别的包来读取csv文件,这是我从网上CV来的一段代码,自我感觉还不错

package com.admin.controller;

import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
     /**
     * @desc: 读取csv文件
     * @time: 2019年7月26日 22:50
     */
    public class export_zhong {
         public static void main(String[] args) {
             try {
                 //(文件完整路径),编码格式
                 BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("C:\\Users\\Coli\\Desktop\\csv文件.csv"), "utf-8"));//GBK
//                 reader.readLine();//显示标题行,没有则注释掉
//                 System.out.println(reader.readLine());
                 String line = null;
                 while((line=reader.readLine())!=null){
                     String item[] = line.split(",");//CSV格式文件时候的分割符,我使用的是,号
                     String last = item[item.length-1];//CSV中的数据,如果有标题就不用-1
                     System.out.println(last);
                 }
             } catch (Exception e) {
                 e.printStackTrace();
             }
         }
     }


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值