美文网首页
python速查表--导入数据

python速查表--导入数据

作者: Sunshine丶宇天 | 来源:发表于2019-01-09 16:53 被阅读132次

用python导入数据

大多数情况都是用Numpy和Pandas导入数据

import numpy as np
import pandas as pd

调用帮助

np.info(np.ndarray.dtype)
help(pd.read_csv)

1. 文本文件

1.1 纯文本文件
 filename = 'test.txt'
 file = open( filename, mode='r')  # 以只读方式读取文件
 text =  file.read()             # 读取文件内容
 print( file.closed)             # 查看文件是否已经关闭
 file.close()                    # 关闭文件
 print(text)

使用上下文管理器 with

with open('test.txt', 'r') as  file:
    print( file.readline())  # 读取一行数据
    print( file.readline())
    print( file.readline())
1.2 表格数据:文本文件
1.2.1 用Numpy导入文本文件
  • 单数据类型文件
filename = ‘test.txt’
data = np.loadtxt( filename,
                   delimiter=',', # 用于分割各列值的字符
                   skiprows=2,    # 跳过前两行
                   usecols=[0,2], # 读取并使用第1列和第3列
                   dtype=str)     # 使用的数据类型
  • 多数据类型文件
 filename = 'titanic.csv'
 data = np.genfromtxt( filename,
                       delimiter=',',
                       names=True,    # 导入是查找列名
                       dtype=None)
data_array = np.recfromcsv( filename) # np.recfromcsv()函数dtype默认值为None
1.2.2 用Pandas导入文本文件
 filename = 'test.csv'                        # csv文件路径
 data = pd.read_csv( filename, 
                     nrows=5,               # 读取的行数
                     header=None,           # 用哪一行做列名
                     sep='\t',              # 用于分割各列的字符
                     comment='#',           # 用于分割注释的字符
                     na_values=[""])        # 读取时,哪些值为NA/NaN

2. Excel表

file = 'test.xlsx'
data = pd.ExcelFile( file)
df_sheet2 = data.parse('1921-1949',
                       skiprows=[0],
                       names=['Country',
                       'AAM: War(20
df_sheet1 = data.parse(0,
                       parse_cols=[0],
                       skiprows=[0],
                       names=['Country'])

使用sheet_names属性访问表单名称:

data.sheet_names

3. SAS文件

from sas7bdat import SAS7BDAT
with SAS7BDAT('test.sas7bdat') as  file:
    df_sas =  file.to_data_frame()

4. Stata文件

 data = pd.read_stata('test.dta')

5. 关系型数据库文件

from sqlalchemy import create_engine
engine = create_engine('sqlite://Northwind.sqlite')
  • 使用 tables_names()方法获取表名列表
table_names = engine.table_names()
5.1 查询关系型数据库
con = engine.connect()
rs = con.execute("SELECT * FROM Orders")
df = pd.DataFrame(rs.fetchall())
df.columns = rs.keys()
con.close()
  • 使用上下文管理器
with engine.connect() as con:
    rs = con.execute("SELECT OrderID FROM Orders")
    df = pd.DataFrame(rs.fetchmany(size=5))
    df.columns = rs.keys()
5.2 使用Pandas查询关系型数据库
df = pd.read_sql_query("SELECT * FROM Orders", engine)

6. 探索数据

6.1 Numpy 数组
data_array.dtype # 查看数组元素的数据类型
data_array.shape # 查看数组的维度
len(data_array)  # 查看数组的长度
6.2 Pandas 数组
df.head()  #  返回数据的前几行(默认是前5行)
df.tail()  #  返回数据的后几行(默认是后5行)
df.index   # 查看数据的索引
df.columns # 查看数据的列名
df.info()  # 查看数据的各列信息
data_array = data.values # 将数据转换为Numpy数组

7. Pickled 文件

import pickle
with open('pickled_fruit.pkl', 'rb') as  le:
    pickled_data = pickle.load( le)

8. HDF5 文件

import h5py
filename = 'test.hdf5'
data = h5py.File( filename, 'r')

9. Matlab 文件

import scipy.io
filename = 'test.mat'
mat = scipy.io.loadmat( filename)

10. 探索字典

10.1 通过函数访问数据元素
print(mat.keys())       # 输出字典的键值列表
for key in data.keys(): # 输出字典的键值
    print(key)
pickled_data.values()   # 返回字典的值
print(mat.items())      # 返回由元组构成字典键值对列表
10.2 通过键访问数据
for key in data ['meta'].keys() #   探索HDF5的结构
    print(key)

print(data['meta']['Description'].value) # 提取某个键值对的值

11. 探寻文件系统

11.1 魔法命令
!ls    # 列出目录里子目录和文件
%cd .. # 返回上一级目录
%pwd   # 返回当前目录的路径
11.2 os库
import os
path = "/usr/tmp"
wd = os.getcwd()  # 将当前目录存为字符串
os.listdir(wd)    # 将当前目录下的文件输出成列表
os.chdir(path)    # 改变当前的工作目录
os.rename("test1.txt", "test2.txt") # 文件重命名
os.remove("test1.txt")  # 删除该文件
os.mkdir("newdir") # 新建文件夹

原文作者:Learn R for Data Science Interactively

相关文章

网友评论

      本文标题:python速查表--导入数据

      本文链接:https://www.haomeiwen.com/subject/nelgrqtx.html