python数据科学(十):pandas基础—— 数据导入导出

本文主要介绍了如何使用Pandas处理CSV数据,包括数据导入、缺失值处理、正则表达式应用以及数据导出。内容涵盖读取CSV文件的不同方式,如指定列名、行索引和多层索引,以及处理不规整数据和逐块读取大文件。同时,文章还讨论了如何保存DataFrame到磁盘,并提到了pickle格式的读写操作。
摘要由CSDN通过智能技术生成

数据格式

  • csv:逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。建议使用WORDPAD或是记事本来开启,再则先另存新档后用EXCEL开启,也是方法之一。

  • pickle:二进制的优点是容量小,读取速度快。缺点是可能在不同版本间不兼容
  • HDF5: HDF5是个C语言实现的库,可以高效地读取磁盘上的二进制存储的科学数据。
  • Excel文件: pd.read_excel/pd.ExcelFile/pd.ExcelWriter
  • JSON: 通过 json 模块转换为字典,再转换为 DataFrame
  • SQL 数据库:通过 pd.io.sql 模块来从数据库读取数据
  • NoSQL (MongoDB) 数据库:需要结合相应的数据库模块,如 pymongo 。再通过游标把数据读出来,转换为 DataFrame

本博客以csv和pickle为例

csv

载入数据到 Pandas

需要注意和学习的

  • 索引:将一个列或多个列读取出来构成 DataFrame,其中涉及是否从文件中读取索引以及列名
  • 类型推断和数据转换:包括用户自定义的转换以及缺失值标记
  • 日期解析
  • 迭代:针对大文件进行逐块迭代。这个是Pandas和Python原生的csv库的最大区别
  • 不规整数据问题:跳过一些行,或注释等等

分隔

pd.read_csv(‘文件名’, sep=‘分隔符’)

缺失

pd.read_csv(‘文件名’, header=None)

指定读取

指定列名

pd.read_csv(‘文件名’, header=None, names=[‘列1’, ‘列2’])

指定行索引

pd.read_csv(‘文件名’, header=None, names=[‘列1’, ‘列2’], index_col=‘索引名’)

指定多层索引

pd.read_csv(‘文件名’, header=None, names=[‘列1’, ‘列2’], index_col=[‘索引名1’,‘索引名2’])

逐块读取

pd.read_csv(‘文件名’, nrows=数量)

处理

正则表达式

符号不定
pd.read_table(‘文件名’, sep=’\s+’)

缺失值处理

默认把NaN Na作为缺失值
pd.read_csv(‘文件名’, na_values=[‘设定的缺失值’, ‘设定的缺失值’, '设定的缺失值’])
设定某列缺失值‘
pd.read_csv(‘文件名’, na_values={‘列1’: [‘设定的缺失值’, ‘设定的缺失值’], ‘列2’: [‘设定的缺失值’]})

统计次数?

tr = pd.read_csv('文件名, chunksize=一次读的行数)

key_count = pd.Series([])
#add 填充默认值
for pieces in tr:
    key_count = key_count.add(pieces['key'].value_counts(), fill_value=0)
#打印出现最多的前十的字母
key_count = key_count.sort_values(ascending=False)
print(key_count[:10])

保存数据到磁盘

不写索引

df.to_csv(‘新文件名’, index=False)

不写列名

df.to_csv(‘新文件名’, index=False, header=None)

指定分隔符

df.to_csv(‘新文件名’, index=False, sep=’|’)

只写一部分

df.to_csv(‘新文件名’, index=False, columns=[‘列1’, ‘列2’])

import pandas as pd
import numpy as np


## 载入数据到 Pandas
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值