Pandas操作csv文件方法整理

介绍

Pandas 是 python 的一个数据分析包,可以方便地从本地读样本数据,提供了很多读取的方式。

安装

推荐使用anaconda,集成了平常比较常用的python库,里面就有 numpy、pandas 等,使用起来非常方便。

官方文档

https://pandas.pydata.org/pandas-docs/stable/index.html

CSV文件

csv文件就是以固定分隔符,比如逗号为分隔符,分割数据的文本文件,文件扩展名为csv。

使用

文件是上证指数,获取方式是网易的接口(感谢网易):
http://quotes.money.163.com/service/chddata.html?code=0000001&start=20190101&end=20191231&fields=TCLOSE;HIGH;LOW;TOPEN;LCLOSE;CHG;PCHG;VOTURNOVER

打开文件

read_csv()方法,读取整个.csv文件;

#数据预处理以及绘制图形需要的模块
import numpy as np
import pandas as pd

#从csv读取数据,这里要指定字符集,不然会报错,默认是utf8的,我这里从网易回来时gb的
dataset = pd.read_csv('./000001.csv', encoding = 'gb18030')
print(dataset)
#在打开文件的时候,不显示列名行
dataset = pd.read_csv('./000001.csv', encoding = 'gb18030',header=1)
print(dataset)
#在打开文件的时候不显示左侧的编号列
dataset = pd.read_csv('./000001.csv', encoding = 'gb18030',index_col=0)
print(dataset)
#在打开文件的时候只取指定的列
dataset = pd.read_csv('./000001.csv', encoding = 'gb18030',usecols=[0,2])
print(dataset)
#基于索引列来获取行(和上面输出一样,有时候索引要不是数字,比如时间,用这个比较方便)
print('第几个数据')
print(dataset.iloc[0])
#该方法也可以类似于python中列表的操作,使用切片,例如取第 3 - 5 行的数据
print('第3 - 5 行数据')
print(dataset.iloc[3:5])
#可以传进去一个列表,例如打印 2,3,5 行的数据
print('打印 2,3,5 行的数据')
print(dataset.iloc[[2,3,5]])

输出:


image.png

其他常用参数:
filepath_or_buffer : str,pathlib。str, pathlib.Path, py._path.local.LocalPath or any object with a read() method (such as a file handle or StringIO)
可以是URL,可用URL类型包括:http, ftp, s3和文件。对于多文件正在准备中
本地文件读取实例:://localhost/path/to/table.csv
sep : str, default ‘,’
指定分隔符。如果不指定参数,则会尝试使用逗号分隔。分隔符长于一个字符并且不是‘\s+’,将使用python的语法分析器。并且忽略数据中的逗号。正则表达式例子:’\r\t’
delimiter : str, default None
定界符,备选分隔符(如果指定该参数,则sep参数失效)
delim_whitespace : boolean, default False.
指定空格(例如’ ‘或者’ ‘)是否作为分隔符使用,等效于设定sep=’\s+’。如果这个参数设定为Ture那么delimiter 参数失效。
在新版本0.18.1支持
header : int or list of ints, default ‘infer’
指定行数用来作为列名,数据开始行数。如果文件中没有列名,则默认为0,否则设置为None。如果明确设定header=0 就会替换掉原来存在列名。header参数可以是一个list例如:[0,1,3],这个list表示将文件中的这些行作为列标题(意味着每一列有多个标题),介于中间的行将被忽略掉(例如本例中的2;本例中的数据1,2,4行将被作为多级标题出现,第3行数据将被丢弃,dataframe的数据从第5行开始。)。
注意:如果skip_blank_lines=True 那么header参数忽略注释行和空行,所以header=0表示第一行数据而不是文件的第一行。
names : array-like, default None
用于结果的列名列表,如果数据文件中没有列标题行,就需要执行header=None。默认列表中不能出现重复,除非设定参数mangle_dupe_cols=True。
index_col : int or sequence or False, default None
用作行索引的列编号或者列名,如果给定一个序列则有多个行索引。
如果文件不规则,行尾有分隔符,则可以设定index_col=False 保证pandas用第一列作为行索引。
usecols : array-like, default None
返回一个数据子集,该列表中的值必须可以对应到文件中的位置(数字可以对应到指定的列)或者是字符传为文件中的列名。例如:usecols有效参数可能是 [0,1,2]或者是 [‘foo’, ‘bar’, ‘baz’]。使用这个参数可以加快加载速度并降低内存消耗。
skiprows : list-like or integer, default None
需要忽略的行数(从文件开始处算起),或需要跳过的行号列表(从0开始)。
skipfooter : int, default 0
从文件尾部开始忽略。 (c引擎不支持)
skip_footer : int, default 0
不推荐使用:建议使用skipfooter ,功能一样。
nrows : int, default None
需要读取的行数(从文件头开始算起)。
其他的参数还很多,又特殊需要可以去官方手册查阅

获取数据

好多时候都需要数据都加载,在执行的时候,动态的操作数据。

获取行数据

print('打印列名')
print(dataset.columns)
#使用 shape 方法,打印数据的维度,一共有几行几列
print('打印数据的维度')
print(dataset.shape)
#使用 loc[ ] 方法,打印第几个数据,参数是数据的行号,例如取第 1 行数据
print('第几个数据')
print(dataset.loc[0])
#该方法也可以类似于python中列表的操作,使用切片,例如取第 3 - 5 行的数据
print('第3 - 5 行数据')
print(dataset.loc[3:5])
#可以传进去一个列表,例如打印 2,3,5 行的数据
print('打印 2,3,5 行的数据')
print(dataset.loc[[2,3,5]])
image.png

获取列数据

#基于列名来获取列
print('第日期列数据')
print(dataset['日期'])
#该方法也可以类似于python中列表的操作,使用切片,例如用列名的数据
print('第日期,股票代码,名称列数据')
print(dataset[['日期','股票代码','名称']])

组合行列的选取

# 全部行的,指定列
print(dataset.loc[:, ['日期', '股票代码','名称']])
# 索引选取行
print(dataset.iloc[5:10, 0:4])
# 列名选取行
print(dataset.loc[5:10, ['日期', '股票代码','名称']])

输出:


image.png

全部代码

到github查看https://github.com/horacepei/tensorflow_study

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容