在数据分析的过程中,外部数据的导入和数据的导出是非常关键的部分,而Python和R在这方面大同小异,且针对不同的包或模块,对应着不同的函数来完成这部分功能:

Python

1.TXT文件

导入:

以某证券软件导出的txt格式股票数据为例:

方式1:

with open(r'C:\Users\windows\Desktop\test\input\SH#600216.txt','r') as s:
data_raw = s.readlines()
data_raw

可以看到,通过readlines(),目标文件中的每一行都被保存为列表中的一个元素

方式2:

with open(r'C:\Users\windows\Desktop\test\input\SH#600216.txt','r') as s:
t = []
while True:
line = s.readline()
if line:
t.append(line)
else:
break
t

方式3:

with open(r'C:\Users\windows\Desktop\test\input\SH#600216.txt','r') as s:
t = s.read()
print(t)

read()读入的是整个txt文件的数据,无视分行:

为了得到每行独立的列表,只需使用spilt()即可:

t.spilt('\n')

写出:

with open(r'C:\Users\windows\Desktop\test\input\SH#600216.txt','r') as s:
t = s.read() with open(r'C:\Users\windows\Desktop\test\input\write.txt','w') as w:
w.write(t)

这是观察文件所在目录,多出了我们生成的txt文件:

2.csv文件

读入:

这里我们需要用到pandas包来进行相关操作:

import pandas as pd

data = pd.read_csv(r'C:\Users\windows\Desktop\test\input\重庆美团商品基本信息.csv',engine='python')

查看data,证实成功读入:

写出:

上面我们完成了对之指定csv文件的读入,并以数据框的形式存放在data中,下面我们将data中的数据写出到新命名的文件中:

data.to_csv(r'C:\Users\windows\Desktop\test\input\new.csv',encoding='ANSI')

这时查看对应目录下的确出现了new.csv:

3.xlsx文件

读入:

import pandas as pd

data = pd.read_excel(r'C:\Users\windows\Desktop\test\input\重庆美团商家信息.xlsx')
data.head()

写出:

data.to_excel(r'C:\Users\windows\Desktop\test\input\new.xlsx',encoding='ANSI')

R

1.txt文件

读入:

> setwd('C:\\Users\\windows\\Desktop\\test\\output')
> data <- read.table('SH#600216.txt',skip=1,header=T)
> summary(data)
日期 开盘 最高 最低 收盘
2013/03/04: 1 Min. : 8.18 Min. : 8.76 Min. : 8.18 Min. : 8.34
2013/03/05: 1 1st Qu.:10.41 1st Qu.:10.54 1st Qu.:10.28 1st Qu.:10.41
2013/03/06: 1 Median :11.60 Median :11.86 Median :11.39 Median :11.61
2013/03/07: 1 Mean :12.88 Mean :13.10 Mean :12.68 Mean :12.90
2013/03/08: 1 3rd Qu.:13.99 3rd Qu.:14.18 3rd Qu.:13.77 3rd Qu.:14.03
2013/03/11: 1 Max. :24.39 Max. :24.59 Max. :23.80 Max. :24.04
(Other) :1209
成交量 成交额
Min. : 2343203 Min. :2.651e+07
1st Qu.: 7052300 1st Qu.:8.825e+07
Median :13560938 Median :1.664e+08
Mean :17675921 Mean :2.262e+08
3rd Qu.:24076418 3rd Qu.:3.010e+08
Max. :97149939 Max. :1.283e+09

写出:

> write.table(data,'new.txt')

2.csv文件

读入:

> setwd('C:\\Users\\windows\\Desktop\\test\\output')
> data <- read.csv('重庆美团商品基本信息.csv',header=T,sep=',')
> summary(data)
月份 平台 店铺名称
2017/5/1 :43841 美团:275343 巫山纸包鱼 : 264
2017/4/1 :43154 黔江鸡杂 : 246
2017/6/1 :39231 街吧 : 203
2017/3/1 :38855 四季颂蛋糕 : 189
2016/11/1:37496 万州烤鱼 : 187
2016/12/1:36682 苒然烘焙(金科店): 180
(Other) :36084 (Other) :274074
商品名称 菜系 价格 原价
100元代金券1张,可叠加: 16913 甜点饮品:65760 Min. : 0 Min. : 0.0
10元代金券1张,可叠加 : 4879 火锅 :59417 1st Qu.: 38 1st Qu.: 50.0
4人餐,提供免费WiFi : 4263 川菜 :49437 Median : 90 Median : 130.0
20元代金券1张,可叠加 : 3223 小吃快餐:41659 Mean : 140 Mean : 207.7
8人餐,提供免费WiFi : 3166 其他美食:12706 3rd Qu.: 168 3rd Qu.: 247.0
6人餐,提供免费WiFi : 3078 烧烤烤肉:11732 Max. :6888 Max. :14500.0
(Other) :239821 (Other) :34632 NA's :38 NA's :39
城市
重庆:275343

写出:

> write.csv(data,file='new.csv')

3.xlsx文件

读入:

方式1:

> library(readxl)
> setwd('C:\\Users\\windows\\Desktop\\test\\output')
> data <- read_excel('重庆美团商家信息.xlsx')
> head(data)
# A tibble: 6 x 15
数据所属期 平台类型 平台 商家名称 商家电话 商家评分
<dttm> <chr> <chr> <chr> <chr> <dbl>
1 2017-06-01 团购 美团 大通冰室(商社汇店) 13983861054 5.0
2 2017-06-01 团购 美团 四季花苑渝湘精致菜馆 023-49815818 4.6
3 2017-06-01 团购 美团 南丫甜(久长街店) 13808360338 5.0
4 2017-06-01 团购 美团 午后蛋糕店(涪陵店) 18225142460 3.9
5 2017-06-01 团购 美团 侯哥风味酒楼 15923287859 3.5
6 2017-06-01 团购 美团 茶颜茶语 13389663358 NA
# ... with 9 more variables: 商家地址 <chr>, 商家评论数 <dbl>, 城市 <chr>, 省 <chr>,
# 本月销量 <dbl>, 本月销售额 <dbl>, 特色菜 <chr>, 菜系 <chr>, 商家URL <chr>

方式2(速度超慢,非常不建议使用!!!):

options(java.parameters = "-Xmx4096m")
library(xlsx)
setwd('C:\\Users\\windows\\Desktop\\test\\output')
data <- read.xlsx('重庆美团商家信息.xlsx',sheetIndex = 1)
head(data)

写出:

目前R的针对excel文件写出的方法中,比较方便(前提是你的电脑安装了java并成功配置好环境)的是xlsx包中的write.xlsx(),如下:

write.xlsx(data,file='demo.xlsx')

Python与R对基本数据类型的读入写出大致如上,而对数据库文件等较复杂数据的处理以后会提及。

(数据科学学习手札05)Python与R数据读入存出方式的总结与比较的更多相关文章

  1. (数据科学学习手札58)在R中处理有缺失值数据的高级方法

    一.简介 在实际工作中,遇到数据中带有缺失值是非常常见的现象,简单粗暴的做法如直接删除包含缺失值的记录.删除缺失值比例过大的变量.用0填充缺失值等,但这些做法会很大程度上影响原始数据的分布或者浪费来之 ...

  2. (数据科学学习手札47)基于Python的网络数据采集实战(2)

    一.简介 马上大四了,最近在暑期实习,在数据挖掘的主业之外,也帮助同事做了很多网络数据采集的内容,接下来的数篇文章就将一一罗列出来,来续写几个月前开的这个网络数据采集实战的坑. 二.马蜂窝评论数据采集 ...

  3. (数据科学学习手札80)用Python编写小工具下载OSM路网数据

    本文对应脚本已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 我们平时在数据可视化或空间数据分析的过程中经常会 ...

  4. (数据科学学习手札50)基于Python的网络数据采集-selenium篇(上)

    一.简介 接着几个月之前的(数据科学学习手札31)基于Python的网络数据采集(初级篇),在那篇文章中,我们介绍了关于网络爬虫的基础知识(基本的请求库,基本的解析库,CSS,正则表达式等),在那篇文 ...

  5. (数据科学学习手札32)Python中re模块的详细介绍

    一.简介 关于正则表达式,我在前一篇(数据科学学习手札31)中已经做了详细介绍,本篇将对Python中自带模块re的常用功能进行总结: re作为Python中专为正则表达式相关功能做出支持的模块,提供 ...

  6. (数据科学学习手札90)Python+Kepler.gl轻松制作时间轮播图

    本文示例代码及数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 Kepler.gl作为一款强大的开源地理信 ...

  7. (数据科学学习手札55)利用ggthemr来美化ggplot2图像

    一.简介 R中的ggplot2是一个非常强大灵活的数据可视化包,熟悉其绘图规则后便可以自由地生成各种可视化图像,但其默认的色彩和样式在很多时候难免有些过于朴素,本文将要介绍的ggthemr包专门针对原 ...

  8. (数据科学学习手札40)tensorflow实现LSTM时间序列预测

    一.简介 上一篇中我们较为详细地铺垫了关于RNN及其变种LSTM的一些基本知识,也提到了LSTM在时间序列预测上优越的性能,本篇就将对如何利用tensorflow,在实际时间序列预测任务中搭建模型来完 ...

  9. (数据科学学习手札69)详解pandas中的map、apply、applymap、groupby、agg

    *从本篇开始所有文章的数据和代码都已上传至我的github仓库:https://github.com/CNFeffery/DataScienceStudyNotes 一.简介 pandas提供了很多方 ...

随机推荐

  1. June 16th 2017 Week 24th Friday

    Progress is the activity of today and the assurance of tomorrow. 进步是今天的活动,明天的保证. The best preparatio ...

  2. FFT算法实现——基于GPU的基2快速傅里叶变换

    最近做一个东西,要用到快速傅里叶变换,抱着蛋疼的心态,自己尝试写了一下,遇到一些问题. 首先看一下什么叫做快速傅里叶变换(FFT)(来自Wiki): 快速傅里叶变换(英语:Fast Fourier T ...

  3. 技术blog

    看到好多人都写技术blog,发现自己工作了快两年居然都没有写过blog,很是惭愧,遂从今天开始不定期更新技术体验,主要是为了记下自己学习摸索技术过程中的经验以及问题解决方案.

  4. python UI自动化实战记录一:测试需求与测试思路

    测试需求: 项目包含两个数据展示页面,数据均来自于四个数据源接口. 测试操作步骤: 选择5个大类型中的一个,每个大类型下有3个子类型,选择任一子类型,页面数据更新.需验证页面上的数据与数据源接口数据一 ...

  5. python入门23 pymssql模块(python连接sql server增删改数据 )

    增删改数据必须connect.commit()才会生效 回滚函数 connect.rollback() 连接数据库 ''' dinghanhua sql server增删改 ''' import py ...

  6. 用PHP向数据库中实现简单的增删改查(纯代码)

    <?php $con = mysql_connect("localhost:3306","root",""); if (!$con) ...

  7. BZOJ4566:[HAOI2016]找相同字符(SAM)

    Description 给定两个字符串,求出在两个字符串中各取出一个子串使得这两个子串相同的方案数.两个方案不同当且仅当这两 个子串中有一个位置不同. Input 两行,两个字符串s1,s2,长度分别 ...

  8. HDU 5805

    题意: 退役狗 NanoApe 滚回去学文化课啦! 在数学课上,NanoApe 心痒痒又玩起了数列.他在纸上随便写了一个长度为 nn 的数列,他又根据心情随便删了一个数,这样他得到了一个新的数列,然后 ...

  9. 【luogu P1903 [国家集训队]数颜色】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1903 裸的...带修莫队... 比较麻烦吧(对我来说是的) 两个变量分开记录查询和修改操作. #includ ...

  10. 使用MVCPager做AJAX分页所走的弯路

    使用MVCPager做AJAX分页所需要注意的地方: 1.版本问题,推荐使用2.0以上,对ajax支持才比较的好了 2.当需要使用页索引输入或下拉框以及使用Ajax分页模式时,必须用Html.Regi ...