pandas之数据IO笔记
2024-08-28 15:53:08
pandas在进行数据存储与输出时会做一些相应的操作
1.*索引:将一个列或多个列读取出来构成DataFrame,其中涉及是否从文件中读取索引以及列名
2 *类型推断和数据转换:包括用户自定义的转换以及缺失值标记
3 *日期解析
4*迭代:针对大文件进行逐块迭代。这个是Pandas和Python原生的csv库的最大区别
5 *不规整数据问题:跳过一些行,或注释等等
import pandas as pd
import numpy as np pd.read_csv('ch04/ex1.csv') # 它输出的是DataFrame
pd.read_table('ch04/ex1.csv',sep=',') # 它的效果和上一行一样 pd.read_csv('ch04/ex2.csv',header=None,names=['a','b','c','d','msg'])
# 它为读取的文件添加列索引 pd.read_csv('ch04/ex2.csv',header=None,
names=['a','b','c','d','msg'],index_col=['msg','b'])
# 为文件添加列索引后,又将'msg','b'两列变为行索引 pd.read_table('ch04/ex3.csv',sep='\s+')
# 文件中的分隔符用到正则表达式sep='\s+' pd.read_csv('ch04/ex5.csv',
na_values={'message':['NA','NULL','foo'],'something':['two']})
# 读出的文件没有值的默认为NaN值,
# na_values通过字典形式表示message与something中需要变为NaN值的一些位置 pd.read_csv('ch04/ex6.csv',nrows=10)
# 表示只读取10行 # 如果要取出每个索引出现的次数,可以利用chunksize
tr = pd.read_csv('ch04/ex6.csv',chunksize=1000)
# 先取出1000行
# 它返回<pandas.io.parsers.TextFileReader at 0x1b116b02780>支持迭代
result = pd.Series([])
for chunk in tr:
result = result.add(chunk['key'].value_counts(),fill_value=0)
# add方法会为索引对应的数据不存在添加默认值,可以采用fill_value=0填充默认值 result = result.sort_values(ascending=False)
result[:10] # 取出前十大的数
往磁盘读入数据
import pandas as pd
import numpy as np df = pd.read_csv('ch04/ex5.csv')
df.to_csv('ch04/ex5_out.csv',index=False)
# 如果没有index=False,读取的文件与源文件有差异,给源文件加了索引
# index=False指定不写索引值 df.to_csv('ch04/ex5_out.csv',index=False,
header=None,columns=['b','c','message'],sep='|')
# header=None,不写列标签,只写'b','c','message'三列,每个数字或字符串用'|'分隔开
最新文章
- Python之路,Day6 - Python基础6
- jQuery超链接提示,提示跟随鼠标动
- log4j配置文件详解
- .NET读写Excel工具Spire.XlS使用(DataExport )
- 用Python写了个抓图小脚本
- C语课设心得分享(二)
- Nginx的配置中与流量分发相关的配置规范:
- HBase分享会议笔记
- 项目文件包含 ToolsVersion=";12.0"; 设置,但此工具集未知或缺失。
- BZOJ3996 [TJOI2015]线性代数
- javascript中的throttle和debounce
- 在Java中谈尾递归--尾递归和垃圾回收的比较(转载)
- sunTime
- http请求参数中文乱码的问题
- eclipse配置文件乱码
- 【Spring】18、springMVC对异常处理的支持
- http和https的作用与区别
- Google I/O 2018大会小结
- 温故而知新-mysql高级管理
- 基于swoole扩展实现真正的PHP数据库连接池