Python 读取常用的结构化数据及基本操作


文章目录

  • Python 读取常用的结构化数据及基本操作
  • 1. pandas 读取 excel 文件
  • 2. pandas 读取 csv 文件
  • 3. pandas 读取 txt 文件
  • 4. 利用 scipy 读取 mat 格式文件数据
  • 5. 利用 numpy 存储和读取 npz 格式文件


结构化数据也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。与其对应的是非结构化数据,如语音、文本、图像、视频等。

结构化数据是普通的数据分析经常用到的数据类型,其本地存储的文件格式又有所不同,如 excel、csv、txt 等。下面我们将介绍三种常用的数据文件Python pandas 库读取方式。

1. pandas 读取 excel 文件

Python数据的读取和写入 python数据读取方法_结构化

import numpy as np
import pandas as pd
#读取疫情数据、数据格式变换
df = pd.read_excel('data/01感染人数分布数据.xlsx',sheet_name='各地区确诊')#读取历史疫情数据
df.index = df['日期'] #修改索引值为日期
df1 = df.drop(['日期'], axis=1)#删除多余日期列
df1

Python数据的读取和写入 python数据读取方法_结构化_02

2. pandas 读取 csv 文件

import pandas as pd
df = pd.read_csv('data/sanya12345.csv',index_col=0)#读取数据
print(df.info())
<class 'pandas.core.frame.DataFrame'>
Int64Index: 184568 entries, 125282 to 127953
Data columns (total 20 columns):
 #   Column          Non-Null Count   Dtype  
---  ------          --------------   -----  
 0   orderAll        184568 non-null  float64
 1   order           184568 non-null  float64
 2   工单编号            184568 non-null  int64  
 3   工单分类            184567 non-null  object 
 4   工单来源            184567 non-null  object 
 5   来电时间            184567 non-null  object 
 6   来电类型            184567 non-null  object 
 7   工单标题            184567 non-null  object 
 8   工单内容            184567 non-null  object 
 9   工单状态            184567 non-null  object 
 10  是否延期            184568 non-null  object 
 11  序号              183977 non-null  float64
 12  处理时间            184567 non-null  object 
 13  处理环节            184567 non-null  object 
 14  处理单位            184179 non-null  object 
 15  处理描述            184567 non-null  object 
 16  extractAddress  131264 non-null  object 
 17  lon84           126785 non-null  float64
 18  lat84           126785 non-null  float64
 19  cluster         184568 non-null  int64  
dtypes: float64(5), int64(2), object(13)
memory usage: 29.6+ MB
’‘’

3. pandas 读取 txt 文件

pandas 读取的数据类型为 DataFrame (或 Series),可通过 .values 操作提取 ndarray 形式.

import numpy as np
import pandas as pd
mat = pd.read_table('data/matrix_data.txt',header=None,sep=',')
print('读入数据为:\n',mat)
print('\n\n转化为 ndarray 类型: \n',mat.values)
读入数据为:
     0   1   2   3   4
0   0   1   2   3   4
1   5   6   7   8   9
2  10  11  12  13  14
转化为 ndarray 类型: 
 [[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]
'''

4. 利用 scipy 读取 mat 格式文件数据

Matlab 常用的数据格式为 .mat 格式, python 中可通过 scipy.io 函数库进行读取, 但是读取格式不是一个矩阵,而是一个字典类型, 需要通过字典中的键-值进行提取

import scipy.io as sio
gt_mat = sio.loadmat('data/data.mat') # 读取的数据格式为字典类型
gt_mat
{'__header__': b'MATLAB 5.0 MAT-file, Platform: MACI64, Created on: \xe4\xba\x8c 11 15 18:53:59 2022',
 '__version__': '1.0',
 '__globals__': [],
 'A': array([[-1.3076883 ,  3.57839694,  3.03492347,  0.7147429 ,  1.48969761],
        [-0.43359202,  2.76943703,  0.72540422, -0.20496606,  1.40903449],
        [ 0.34262447, -1.34988694, -0.06305487, -0.12414435,  1.41719241]])}
gt_mat.keys() # 查看字典的键
dict_keys(['__header__', '__version__', '__globals__', 'A'])
gt_mat['A'] # 通过字典的键提取字典相应的值,即可显示为 adarray 格式的矩阵
array([[-1.3076883 ,  3.57839694,  3.03492347,  0.7147429 ,  1.48969761],
       [-0.43359202,  2.76943703,  0.72540422, -0.20496606,  1.40903449],
       [ 0.34262447, -1.34988694, -0.06305487, -0.12414435,  1.41719241]])
’‘’

5. 利用 numpy 存储和读取 npz 格式文件

npz 格式的文件存储和读取需要借助 numpy 库, 可以通过 numpy.savez() 对 array 对象或者列表进行直接存储.

import numpy as np
x = np.array([1,2,3,4,5,6,7,8,9,10])
np.savez('data.npz',x)

读取 npz 格式的文件需要用到 numpy.load() 函数, 读取的数据格式不是原有存贮的格式, 而是一个 NpzFile 对象, 需要通过对象函数 .files 进行提取, 提取出的数据是一个列表, 还需要对数据列表进一步提取.

import numpy as np
y = np.load('data.npz')
print(type(y))
print(y.files)
data = y['arr_0']
<class 'numpy.lib.npyio.NpzFile'>
['arr_0']
Out[52]:
array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10])
                            
Python rename函数的用法 python中name函数怎么用

首先定义了一个test.py的文件,然后再定义一个函数,并在函数定义后直接运行:test.py def HaveFun(): if __name__ == '__main__': print('I am in my domain,my name is %s' % __name__) else: print('Someone else calls me!,my name is %s' % __nam

sshtunnel python sshtunnel python 绑定本机随机端口

需要用到的模块:sshtunnel,paramiko 通过sshtunnel建立客户端与跳板机的隧道,然后再通过paramiko链接服务器即可 常见配置如下: import paramiko from sshtunnel import SSHTunnelForwarder with SSHTunnelForwarder ( ('跳板机IP',po