数据挖掘技术-读写文本文件

读/写文本文件

  1. 背景

数据读取是进行数据预处理,建模与分析的前提。不同的数据源,需要使用不同的函数读取。pandas内置了十余种数据源读取函数和对应的数据写入函数。常见的数据源格式有以下几种,分别是文本文件(包括一般文本文件和csv文件)和Excel文件。掌握这两种数据源读取方法,便能够完成日常的一些数据分析数据读取工作。

  1. 前置步骤

准备meal_order_info.csv,users.xlsx,放在tmp文件夹

3文本文件读取

  1. 以餐饮订单信息表为例,使用read_table和read_csv函数读取数据,如代码 42所示。

代码 42 使用read_table和read_csv函数读取菜品订单详情表

In[1]:

import pandas as pd

import os

os.chdir('/course/DataAnalyze/data')

## 使用read_table读取订单信息表

order = pd.read_table('./meal_order_info.csv',sep = ',',encoding = 'gbk' , engine = 'python')

print('使用read_table读取的订单信息表的长度为:',len(order))

Out[1]:

使用read_table读取的订单信息表的长度为: 945

In[2]:

## 使用read_csv读取订单信息表

order1 = pd.read_csv('./meal_order_info.csv',encoding = 'gbk', engine = 'python')

print('使用read_csv读取的订单信息表的长度为:',len(order1))

Out[2]:

使用read_csv读取的订单信息表的长度为: 945

  1. 使用read_table和read_csv读取数据时sep、header、encoding三参数设置,如代码 43所示。

代码 43 更改参数读取菜品订单信息表

In[3]:

## 使用read_table读取菜品订单信息表,sep = ';'

order2 = pd.read_table('./meal_order_info.csv',sep = ';;',encoding = 'gbk', engine = 'python')

print('分隔符为;;时订单信息表为:\n',order2)

Out[3]:

分隔符为;;时订单信息表为:

"info_id","emp_id","number_consumers","mode","dining_table_id","dining_table_name","expenditure","dishes_count","accounts_payable","use_start_time","check_closed","lock_time","cashier_id","pc_id","order_number","org_id","print_doc_bill_num","lock_table_info","order_status","phone","name"

0    417,1442,4,NA,1501,1022,165,5,165,"2016/8/1 11...                                                                                                                                                                                                                                            

1    301,1095,3,NA,1430,1031,321,6,321,"2016/8/1 11...                                                                                                                                                                                                                                            

2    413,1147,6,NA,1488,1009,854,15,854,"2016/8/1 1...                                                                                                                                                                                                                                            

...  

[945 rows x 1 columns]

In[4]:

## 使用read_csv读取菜品订单信息表,header=None

order3 = pd.read_csv('./meal_order_info.csv',sep = ',',header = None,encoding = 'gbk', engine = 'python')

print('查看订单信息表内容为:','\n',order3)

Out[4]:

查看订单信息表内容为:

           0       1                 2     3                4   \

0    info_id  emp_id  number_consumers  mode  dining_table_id   

1        417    1442                 4   NaN             1501   

2        301    1095                 3   NaN             1430   

3        413    1147                 6   NaN             1488   

...      

[946 rows x 21 columns]

In[5]:

## 使用gbk解析菜品订单信息表,使用utf-8则会报以下编码错误

order4 = pd.read_csv('./meal_order_info.csv',sep = ',',encoding = 'utf-8', engine = 'python')

Out[5]:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc3 in position 0: invalid continuation byte

  1. 代码 43中列举的数据分析中常用的read_table、read_csv函数的参数,能够满足多数情况对读取文本文件或者csv文件的需求。如果对全部的50余个参数感兴趣,可以阅读pandas官方的API文档。
  1. 文本文件存储

将餐饮菜品订单信息表写入csv文件,如代码 44所示。

代码 44 使用to_csv函数将数据写入csv文件中

In[6]:

import os

os.chdir('/course/DataAnalyze/data')

print('订单信息表写入文本文件前目录内文件列表为:\n',os.listdir())

## 将order以csv格式存储

order.to_csv('orderInfo.csv',sep = ';',index = False)

print('订单信息表写入文本文件后目录内文件列表为:\n',os.listdir())

Out[6]:

订单信息表写入文本文件前目录内文件列表为:

 ['meal_order_info.csv', 'users.xlsx']

订单信息表写入文本文件后目录内文件列表为:

 ['meal_order_info.csv', 'users.xlsx', 'orderInfo.csv']

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知识世界

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值