Python导入数据

Taihua 于 2020-04-09 发布

大多数情况下,都是用 Numpy 或 Pandas 导入数据。                          

import numpy as np  
import pandas as pd                                 

调用帮助

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

文本文件

纯文本文件

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

表格数据:文本文件

Excel表格

file = 'urbanpop.xlsx'
data = pd.ExcelFile(file)
df_sheet2 = data.parse('1960-1966', 
         skiprows=[0],
         names=['Country', 'AAM: War(2002)'])
df_sheet1 = data.parse(0,
        parse_cols=[0],
        skiprows=[0],
        names=['Country'])

SAS 文件

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

Stata 文件

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

关系型数据库文件

from sqlalchemy import create_engine
engine = create_engine('sqlite://Northwind.sqlite')

使用 table_names() 方法获取表名列表:

table_names = engine.table_names()

查询关系型数据库

con = engine.connect()
rs = con.execute("SELECT * FROM Orders")
df = pd.DataFrame(rs.fetchall())
df.columns = rs.keys()
con.close()

使用Pandas 查询关系型数据库

df = pd.read_sql_query("SELECT * FROM Orders", engine)

探索数据

Numpy 数组

data_array.dtype                # 查看数组元素的数据类型
data_array.shape                # 查看数组维度
len(data_array)                 # 查看数组长度

Pandas 数据框

df.head()                       # 返回数据框的前几行,默认为5行
df.tail()                       # 放回数据框的后几行,默认为5行
df.index                        # 查看数据框的索引
df.columns                      # 查看数据框的列名
df.info()                       # 查看数据框各列的信息
data_array = data.values        # 将数据框转换为 Numpy 数组

Pickled 文件

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

HDF5 文件

import h5py
filename = 'H-H1_LOSC_4_v1-815411200-4096.hdf5'
data = h5py.File(filename, 'r')

Matlab 文件

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

探索字典

通过函数访问数据元素

print(mat.keys())               # 输出字典的键值(Key)
for key in data.keys(): 
    print(key)                  # 输出字典的键值(Key)
pickled_data.values()           # 返回字典的值
print(mat.items())              # 返回由元组构成字典键值对列表

通过键访问数据

for key in data ['meta'].keys(): 
    print(key)                  # 探索 HDF5 的结构
print(data['meta']['Description'].value) 
                                # 提取某个键对应的值

探寻文件系统

魔法命令

!ls                             # 列出目录里的子目录和文件夹
%cd ..                          # 改变当前工作目录
%pwd                            # 返回当前工作目录的路径

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")              # 新建文件夹


内容来源:DataCamp


(注:博文仅供个人学习记录,如有侵权请到留言板联系删除!)