SEO

Pandas的IO方法一

2019-04-24  本文已影响0人  aikonwen

根据官方文档提供的说明(IOTools),Pandas支持常用的文本格式数据(csv、json、html、剪贴板)、二进制数据(excel、hdf5格式、Feather格式、Parquet格式、Msgpack、Stata、SAS、pkl)、SQL数据(SQL、谷歌BigQuery云数据),各类型数据处理的方法如下表:

数据类型 描述符 读方法 写方法
text CSV read_csv to_csv
text JSON read_json to_json
text HTML read_csv to_csv
text 剪贴板 read_clipboard to_clipboard
二进制 Excel read_excel to_excel
二进制 HDF5 read_hdf to_hdf
二进制 PKL read_pickle to_pickle
SQL SQL read_sql to_sql

下面详细介绍常用的csv、txt、excel、json、pkl格式文件的读写操作。

import pandas as pd
# 读取csv文件
pd.read_csv('/home/root/foo.csv')
# 读取txt文件
pd.read_csv('/home/root/bar.txt')
# 编码判断方法
def encode_judge(file_dir):
  charset = 'utf8'
  file_ext = file_dir.rsplit('.', 1).pop().lower()
  if file_ext in ('csv', 'txt', 'xls', 'xlsx'):
    for i in ('utf8', 'gb18030', 'latin'):
      try:
          with open(file_dir, "r", encoding=i) as file:
            file.read(1024 * 1024 * 10)
            charset = i
            break
      except:
          pass
  return charset
# 分隔符判断方法
def get_sep(lines):
  result = ','
  for sep in (',', '\t', ' '):
    if sep in lines:
      result = sep
      break
  return result
# 借用xlrd这个包可以提高读取excel格式的兼容性能
# 读取前也参照上面的编码检测操作
import xlrd
content = xlrd.open_workbook(filename=file_dir, encoding_override=charset)
pd.read_excel(content, engine='xlrd')

对于其他文件的读取可参照上面列表以及官方文档说明,text类型的文件一般支持迭代方式读取,二进制文件只能一次性读取, sql读取和pkl的读取在下篇文章中更新。

上一篇下一篇

猜你喜欢

热点阅读