1用python做数据分析,数据来源一般会有多种格式,而我喜欢以CSV的方式进行存储分析,如果数据本身就是CSV格式的那我可以直接用pandas库自带的方法进行读取即可,但是有时候各种来源的数据不方便用pandas进行直接分析处理,所以就有了一个通用的读写CSV文件的方法。

#1导入相关包

importosimportreimportcsv#1读取csv文件

def read_csv(filename, header=False):

res=[]

with open(filename) as f:

f_csv=csv.reader(f)if header:#默认读取头部文件

headers =next(f_csv)

header=Falsefor row inf_csv:

res.append(row)returnres#2写入csv文件

defwrite_csv(data, filename):

with open(filename,"wb") as f:

f_csv=csv.writer(f)#一行一行写入

for item indata:

f_csv.writerow(item)

2.有时候文件是txt或者从hive等数据库导出来的格式则可以用下面的方法读取数据并进行分析

#3读取文本格式

defread_text(filename, columns, delimeter):#columns:多少列

#delimeter:分隔符

res =[]

with open(filename,"rb") as f:whileTrue:

line=f.readline()ifline:

line= re.sub("[ ]", "", line)#清楚换行符

lines =line.split(delimeter)if len(lines) !=columns:continueres.append(lines)else:break

return res

3.也可以用numpy直接进行读取文件格式:loadtxt(fname, dtype=float,delimiter=None,skiprows=0, usecols=None, unpack=False)fname:文件名,dtype:数据类型,也可使是str,delimiter:分隔符,skiprows:跳过开头几行,usecols:读取某一列或者几列的值比如(0,3)表示读取第一和四列的值。

例子:npload.txt

409208.3269760.9539523qwe

144887.1534691.6739042aad

260521.4418710.8051241zc

7513613.1473940.4289641wed

importnumpy as np

filename= "E:/PythonProject/CommonFunction/input/npload.txt"res= np.loadtxt(filename,dtype=str,delimiter=" ",skiprows=1,usecols=(0,3,4),unpack=False)printtype(res)printres

x,y,z= np.loadtxt(filename,dtype=str,delimiter=" ",skiprows=1,usecols=(0,3,4),unpack=True)print x#第一列

print y#第四列

print z#第五列

结果:

[['14488' '2' 'aad']

['26052' '1' 'zc']

['75136' '1' 'wed']]

['14488' '26052' '75136']

['2' '1' '1']

['aad' 'zc' 'wed']

4.pandas也是一个强大的数据分析工具,直接读取csv,excel文件,或者吧pandas的DataFrame直接存储为csv或者excel格式:例如把上面的数据可以通过write_csv()方法存储为csv格式,然后可以直接用pandas读取。

pd.read_csv(filename, header=None, index_col=0, usecols=(1,2,3), skiprows=0)参数和np.loadtxt()参数解释基本是一样的。read_excel(io,sheet_name=0,header=0,index_col=None,usecols=None,dtype=None,skiprows=None)常用的参数解释都是一样的。相应的存储方法则是to_csv()和to_excel()

importpandas as pd

filename="E:/PythonProject/CommonFunction/input/npload.csv"df= pd.read_csv(filename, header=None, index_col=0, usecols=(1,2,3), skiprows=0)print df.head()

结果:

2 3

1

8.326976 0.953952 3

7.153469 1.673904 2

1.441871 0.805124 1

13.147394 0.428964 1

5.用的着的小技巧:pandas的pivot方法和numpy的permutation

df = pd.DataFrame({'foo': ['one', 'one', 'one', 'two', 'two',

...'two'],

...'bar': ['A', 'B', 'C', 'A', 'B', 'C'],

...'baz': [1, 2, 3, 4, 5, 6],

...'zoo': ['x', 'y', 'z', 'q', 'w', 't']})printdf

df.pivot(index='foo', columns='bar', values='baz')#以foo为索引列,以bar列为行,zoo列为值,注(foo, bar)不能重复

结果

bar baz foo zoo

0 A 1 one x

1 B 2 one y

2 C 3 one z

3 A 4 two q

4 B 5 two w

5 C 6 two t

bar A B C

foo

one 1 2 3

two 4 5 6

np.random.seed(0)print np.random.permutation(10)#将0-9随机打乱,可用于随机取数据集

x = range(10)

np.random.shuffle(x)#洗牌,参数需要是一个可迭代的对象

print x

[2 8 4 9 1 6 7 3 0 5]

[3, 5, 1, 2, 9, 8, 0, 6, 7, 4]

注:当然也可以用sklearn的train_test_split方法分割数据集

from sklearn.model_selection import train_test_split

train_set,test_set = train_test_split(SampleData, test_size=0.2, random_state=42)

如果数据集含有标签,可以和标签一块分割 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)

python读csv-python读写csv文件相关推荐

  1. 利用python中的csv库读写csv文件

    利用python中的csv库读写csv文件 python读写csv文件就我知道的方法有:1)利用csv库,2)利用读写txt文件的方式处理,3)利用numpy或pandas库处理 在这篇博客中,博主就 ...

  2. python数据存储系列教程——python(pandas)读写csv文件

    全栈工程师开发手册 (作者:栾鹏) python教程全解 CSV文件的规范 1.使用回车换行(两个字符)作为行分隔符,最后一行数据可以没有这两个字符.2.标题行是否需要,要双方显示约定3.每行记录的字 ...

  3. python数据处理系列之读写csv数据

    python数据处理系列之读写csv数据 导入csv文件 pandas中导入csv数据用的方法是read_csv() import pandas as pd df = pd.read_csv(r'c: ...

  4. Python使用openpyxl模块读写excel文件

    Python使用openpyxl模块读写excel文件 openpyxl是一个用于写入和读取xlsx格式的excel文件的Python模块. excel2010后的后缀名为xlsx,不再是xls,使用 ...

  5. python导入excel文件-python使用xlrd模块读写Excel文件的方法

    本文实例讲述了python使用xlrd模块读写Excel文件的方法.分享给大家供大家参考.具体如下: 一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi ...

  6. Python:使用 csv 模块读写 csv 文件

    目录 一.读取 csv 文件 二.写入 csv 文件 一.读取 csv 文件 # -*- coding: utf-8 -*-import csv import sysdef read_csv_file ...

  7. python读啥-Python之文件读写

    本节内容: I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 Python文件操作步骤示例 Python文件读取相关方法 文件读写与字符编码 一.I/O操作概述 I/O在计算机中是指Input ...

  8. python怎么读excelsheet_python怎么读写excel文件

    python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库.下面记录python读取excel. python读excel--xlrd 这个过程 ...

  9. python怎么读excel_python怎么读写excel文件

    展开全部 最近用python处理一个小项目32313133353236313431303231363533e4b893e5b19e31333363393732,其中涉及到对excel的读写操作,通过查 ...

  10. python读数据-python数据读写

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 读写json文件的文档docimport jsondirectory = ...

最新文章

  1. 选择重传协议(SR)
  2. 各浏览器中for in顺序的差异
  3. java exec 调用vbs_通过java调用VBS,再用VBS执行Excel中的宏的例子 | 学步园
  4. Configuration类在网页实现对web.config的修改[转]
  5. Pandas文本处理双雄extract+extractall
  6. [观察,找规律]算法题目训练
  7. spring cloud 启动bean 循环依赖问题记录
  8. 字典按照值或键进行排序
  9. ES6——rest参数
  10. 2012-10-29 → 2012-11-11 周总结:项目试运行(考验的时候到了),总算解决了WCF慢的问题了...
  11. Ext4中获取下拉框的值
  12. 快排 递归与非递归实现 优化
  13. 凭几句话的方案,你什么也做不了
  14. C++windows内核编程笔记day11 win32静态库和动态库的使用
  15. 线性混合模型(Linear Mixed Models)与R语言 lmer() 函数
  16. 【181018】纯C 编写的太空大战打字游戏
  17. html调整中文文字间距,HTML 中调整文字间距,行间距和文字竖排
  18. 浅谈Android指纹识别技术
  19. 华为 致 新 员 工 书
  20. 如何用python画出一般函数图_python如何画函数图像

热门文章

  1. 【题解】Luogu P2730 魔板
  2. BootStrap-select插件动态添加option无法显示
  3. IE9,IE10,IE11下当Content-type为application/json时,打开接口会出现下载弹框
  4. ubuntu14.04安装CUDA8.0
  5. hbase全分布安装配置
  6. 谈谈Java运行机制
  7. 从LINQ开始之LINQ to Objects(上)
  8. Django 应用开发(2)
  9. ASP.NET 163 smtp服务器响应为:User has no permission
  10. python读取txt文件第一行-python读取文本文件数据