zoukankan      html  css  js  c++  java
  • Pandas学习1 --- 数据载入

    import numpy as np
    import pandas as pd
    

    数据加载

    首先,我们需要将收集的数据加载到内存中,才能进行进一步的操作。pandas提供了非常多的读取数据的函数,分别应用在各种数据源环境中,我们常用的函数为:

    • read_csv
    • read_table
    • read_sql
      q

    1.1 加载csv数据

    • header 表标题,可以使用整形和或者整形列表来指定标题在哪一行,None是无标题,默认infer首行
    • sep 控制数据之间的分隔符号。read_csv方法,默认为逗号(,)
    • names 设置列标签(相当于df.columns)
    • index_col 可以指定有唯一标记的列来充当行标签
    • usecols 指定感兴趣的列
    # 加载数据集, 返回DataFram类型
    df = pd.read_csv('/home/geoffrey/文档/33.csv', header=0, sep=',', usecols=['v:0', 'Points:0', 'Points:1', 'Points:2'])
    df.head(10)
    
    v:0 Points:0 Points:1 Points:2
    0 2.57150 1.23150 -0.86263 -0.40724
    1 2.08420 1.15670 -0.90047 -0.34635
    2 1.27970 0.76719 -0.93330 -0.26176
    3 0.71951 0.63454 -0.91585 -0.22918
    4 1.63080 0.81560 -0.93992 -0.20332
    5 3.36400 1.50590 -0.98745 -0.19570
    6 2.27160 0.82635 -0.89883 -0.19312
    7 2.64630 0.96451 -0.85991 -0.18457
    8 0.91226 0.68853 -0.83424 -0.18203
    9 4.55390 1.46730 -0.82822 -0.17043

    1.2 加载数据库数据

    pd.read_sql(sql语句, 连接对象)

    import sqlite3
    
    # 创建连接,创建数据库
    con = sqlite3.connect('test.db')
    # SQL语句
    sql = 'create table person(id int primary key, name varchar(100))'
    con.execute(sql)
    
    # 插入数据
    sql = 'insert into person(name) values("Geoffrey")'
    con.execute(sql)
    con.commit()
    
    # 查看数据
    sql = 'select * from person'
    pd.read_sql(sql, con)
    
    id name
    0 None Geoffrey

    1.3 数据流处理

    数据流.getvalue() # 注意,写入后指针在数据流的末尾,需要调整指针

    from io import StringIO # 类文件对象(缓存区)
    
    # 创建缓存区
    sio = StringIO()
    
    # 向缓存区写入数据
    df.to_csv(sio)
    
    # 读取数据
    sio.getvalue()
    
    ',0,1,2
    0,1,2,3.0
    1,4,5,6.0
    2,7,8,
    '
    
    # 调整指针到缓存区头部
    sio.seek(0)
    sio.read()
    
    ',0,1,2
    0,1,2,3.0
    1,4,5,6.0
    2,7,8,
    '
    

    2. 写入数据

    DataFrame与Series对象的to_csv方法:
    该方法可以将数据写入:

    • 文件中
    • 数据流中
    常用参数
    • sep 指定分隔符
    • header 是否写入标题行
    • na_rep 空值的表示
    • index 是否写入索引
    • index_label 索引字段的名称
    • columns 写入的字段
    df = pd.DataFrame([
        [1, 2, 3],
        [4, 5, 6],
        [7, 8, np.nan] # 含有
    ])
    df
    
    0 1 2
    0 1 2 3.0
    1 4 5 6.0
    2 7 8 NaN
    df.to_csv('test.csv', sep=',', header=True, index=True, na_rep='空', columns=[0, 2])
    pd.read_csv('test.csv')
    
    Unnamed: 0 0 2
    0 0 1 3.0
    1 1 4 6.0
    2 2 7
  • 相关阅读:
    Treap 模板 poj1442&hdu4557
    2016多校第六场题解(hdu5793&hdu5794&hdu5795&hdu5800&hdu5802)
    hdu5785--Interesting(manacher)
    hdu5792--World is Exploding
    HDU5791--Two (DP)
    HDU5781--ATM Mechine(概率dp)
    hdu5773--The All-purpose Zero(LIS变形)
    hdu5769--Substring(后缀数组)
    poj1743--Musical Theme(后缀数组)
    HDU5739-Fantasia(tarjan求割点)
  • 原文地址:https://www.cnblogs.com/geoffreyone/p/9924688.html
Copyright © 2011-2022 走看看