Pandas进阶

1 文件读取与储存

  • csv(Comma-Separated values,逗号分隔值,有时也称为字符分隔值,因为分隔字符也可以不是逗号)是纯文本形式存储表格数据,既可以用记事本打开,也可以用EXCEL打开。CSV文件由任意数目的记录组成,记录间以换行符分隔;每条记录由字段组成,字段间的分隔符一般是逗号或制表符
  • json是轻量级的数据交换格式,完全独立于编程语言的文本格式来存储和表示数据,特点是简洁和清晰的层次结构.json是轻量级的?这是因为json不管是编写,还是解析都很高效,而且在传输过程中采用了压缩技术,更加的节省带宽·
  • 我们对HTML并不陌生,它是超文本标记语言(Hyper Text Markup Language)
  • EXCEL就不介绍了,大家都很熟悉
  • pickle相对就没那么眼熟了,pickle其实是个模块,模块中的序列化过程将文本信息转变为二进制数据流。这样就信息就容易存储在硬盘之中,而不是像将数据放入内存中那样关机断电就会丢失数据。 相反的,其反序列化便可以得到原始的数据
  1. CSV
  pd.read_csv(path)
      usecols=
      names=
  dataframe.to_csv(path)
      columns=[]
      index=False
      header=False
  1. HDF5

hdf5 存储 3维数据的文件

key1 dataframe1二维数据
key2 dataframe2二维数据
pd.read_hdf(path, key=)
df.to_hdf(path, key=)
  1. JSON
  pd.read_json(path)
      orient="records"
      lines=True
  df.to_json(patn)
      orient="records"
      lines=True

在表格的Reader和Writer两列包含了对各种数据形式的读写函数

对于读,统一都是以read加下划线加需要读取的数据形式

对于写,统一都是以to加下划线加需要写入的数据形式

[图5]

CSV

注:需要人为手动设置列索引

data = pd.read_csv("stock_day2.csv", names=["open", "high", "close", "low", "volume", "price_change", "p_change", "ma5", "ma10", "ma20", "v_ma5", "v_ma10", "v_ma20", "turnover"])

data[:10]

open high close low volume price_change p_change ma5 ma10 ma20 v_ma5 v_ma10 v_ma20 turnover
2018-02-27 23.53 25.88 24.16 23.53 95578.03 0.63 2.68 22.942 22.142 22.875 53782.64 46738.65 55576.11 2.39
2018-02-26 22.80 23.78 23.53 22.80 60985.11 0.69 3.02 22.406 21.955 22.942 40827.52 42736.34 56007.50 1.53
2018-02-23 22.88 23.37 22.82 22.71 52914.01 0.54 2.42 21.938 21.929 23.022 35119.58 41871.97 56372.85 1.32
2018-02-22 22.25 22.76 22.28 22.02 36105.01 0.36 1.64 21.446 21.909 23.137 35397.58 39904.78 60149.60 0.90
2018-02-14 21.49 21.99 21.92 21.48 23331.04 0.44 2.05 21.366 21.923 23.253 33590.21 42935.74 61716.11 0.58
2018-02-13 21.40 21.90 21.48 21.31 30802.45 0.28 1.32 21.342 22.103 23.387 39694.65 45518.14 65161.68 0.77
2018-02-12 20.70 21.40 21.19 20.63 32445.39 0.82 4.03 21.504 22.338 23.533 44645.16 45679.94 68686.33 0.81
2018-02-09 21.20 21.46 20.36 20.19 54304.01 -1.50 -6.86 21.920 22.596 23.645 48624.36 48982.38 70552.47 1.36
2018-02-08 21.79 22.09 21.88 21.75 27068.16 0.09 0.41 22.372 23.009 23.839 44411.98 48612.16 73852.45 0.68
2018-02-07 22.69 23.11 21.80 21.29 53853.25 -0.50 -2.24 22.480 23.258 23.929 52281.28 56315.11 74925.33 1.35
# 保存'open'列的数据
data[:10].to_csv("test.csv", columns=["open"])
#不保存行索引
data[:10].to_csv("test.csv", columns=["open"],index = False)
path =r' D:\course \bike hour.csv'
res =pd.read_csv(path)
res

记得在Python转义符’’\”,在windows下的目录字符串中通常有斜杠,而斜杠在 Python的字符串中有转义的作用。如果我们不告诉Python这个斜杠不是转义符,它就会把\b”理解是退格(ASCII码值为008x为十六进制),所以我们需要在路径前加上”r”告诉Python保持字符串原始值

HTML

read_html 作用快速获取在html中页面table格式数据

url ='https://www.fdic.gov/bank/individual/failed/banklist.html'
res2=pd.read_html(url)
res2

我们可以看到read_html把网页上的表格型数据解析为一个列表。其中表示列标签换行用to_html可以看到table类型的表格网页结构

df = pd.DataFrame(np.random.rand(2,2))
df
0 1
0 0.099625 0.445910
1 0.500740 0.461739

print(df.to_html())

<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>0</th>
      <th>1</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>0.099625</td>
      <td>0.445910</td>
    </tr>
    <tr>
      <th>1</th>
      <td>0.500740</td>
      <td>0.461739</td>
    </tr>
  </tbody>
</table>

2.缺失值处理

处理类型一般有两种:

  1. 删除含有缺失值的样本(多)
  2. 替换/插补(少)

2.1 如何处理nan

一般分为两步

  1. 判断数据中是否存在NaN

             pd.isnull(df)   有缺失返回True
             pd.notnull(df)
    
  2. 删除含有缺失值的样本

             df.dropna(inplace=False)
            替换/插补
             df.fillna(value, inplace=False)
    
import pandas as pd
import numpy as np
movie = pd.read_csv("./IMDB-Movie-Data.csv")
movie
Rank Title Genre Description Director Actors Year
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值