• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

世间行者

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

Pandas(2)数据读取

  通过Pandas提供的read_xxx相关的函数可以读取文件中的数据,并形成DataFrame,常用的数据读取方法为:read_csv( )和read_excel( ),主要可以读取文本类型的数据。

1 读取格式

  pd.read_csv ( filepath, encoding, sep, header, names, usecols, index_col, skiprows, nrows……)

(1)filepath:文件存储路径,可以用r' '进行非转义限定,路径最好是纯英文(文件名也是),不然会经常碰到编码不对问题,最方便是直接将文件存储在Pandas默认的路径下,则直接输入文件名即可

  (2)encoding:pandas默认编码是utf-8,如果同样读取默认uft-8的txt或者json格式,则可以忽略这个参数,如果是CSV,且数据中有中文时,则要指定encoding='gbk'

  (3)sep:指定分割符形式,CSV默认逗号分割,可以忽略这个参数,如果是其它分割方式,则要填写。默认为单字符,若为双字符分割,需要增加参数engine='python'

import pandas as pd
df1 = pd.read_csv('test1.txt')
df2 = pd.read_csv('test2.txt', sep=';')
df3 = pd.read_csv('test3.txt', sep='::', engine='python')
print('===== 逗号分割 =====\n', df1)
print('===== 分号分割 =====\n', df2)
print('===== 双冒号分割 =====\n', df3)
# ===== 逗号分割 ===== # name age scores # 0 gerry 18 98.5 # 1 tom 21 78.2 # 2 lili 24 98.5 # 3 john 20 89.2 # ===== 分号分割 ===== # name age scores # 0 gerry 18 98.5 # 1 tom 21 78.2 # 2 lili 24 98.5 # 3 john 20 89.2 # ===== 双冒号分割 ===== # name age scores # 0 gerry 18 98.5 # 1 tom 21 78.2 # 2 lili 24 98.5 # 3 john 20 89.2

  (4)header:指定第一行是否是列名,通常有三种用法:忽略或header=0(表示数据第一行为列名),header=None(表明数据没有列名),常与names搭配使用

  (5)names:指定列名,通常用一个字符串列表表示,当header=0时,用names可以替换掉数据中的第一行作为列名,如果header=None,用names可以增加一行作为列名,如果没有header参数时,用names会增加一行作为列名,原数据的第一行仍然保留

df4 = pd.read_csv('test2.txt', sep=';', header=None)
df5 = pd.read_csv('test2.txt', sep=';', header=None, names=['A', 'B', 'C'])
print('===== 默认列名保留第一行 =====\n', df4)
print('===== 指定列名保留第一行 =====\n', df5)
# ===== 默认列名保留第一行 ===== # 0 1 2 # 0 name age scores # 1 gerry 18 98.5 # 2 tom 21 78.2 # 3 lili 24 98.5 # 4 john 20 89.2 # ===== 指定列名保留第一行 ===== # A B C # 0 name age scores # 1 gerry 18 98.5 # 2 tom 21 78.2 # 3 lili 24 98.5 # 4 john 20 89.2

  (6)usecols:一个字符串列表,可以指定读取的列名

  (7)index_col:一个字符串列表,指定哪几列作为索引

  (8)skiprows:跳过多少行再读取数据,通常是数据不太干净,需要去除掉表头才会用到

  (9)nrows:仅读取多少行,后面的处理也都仅限于读取的这些行

2 写入格式

  DataFrame.to_csv('filename')

 

【其他数据格式持续补充......】

 

 

posted on 2020-02-10 22:56  世间行者  阅读(381)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3