[更新~] Python网络爬虫与文本数据分析
前段时间看到plotnine库(封装的R语言ggplot2)作的图太美了,有点想重新拾起R语言^_^
R语言代码略带凌乱,讲真的还是更喜欢Python代码简洁。不过好几年不琢磨R语言,对R语言代码的凌乱美有些新奇,很好玩,这也许就是久别胜新欢吧。
而且R语言的文本分析生态也挺全的,Python与R结合起来,完美~
R语言读写操作
本章文件读写用到的包有
readtext
readr
readxl
writexl
其中readr、readxl均为tidyverse内的子包,做数据分析一般绕不开tidyverse
tidyverse含有的包
library(tidyverse)tidyverse::tidyverse_packages()
##[1]"broom""cli""crayon""dbplyr""dplyr"##[6]"forcats""ggplot2""haven""hms""httr"##[11]"jsonlite""lubridate""magrittr""modelr""pillar"##[16]"purrr""readr""readxl""reprex""rlang"##[21]"rstudioapi""rvest""stringr""tibble""tidyr"##[26]"xml2""tidyverse"
预备知识: tibble包
tibble比R内置的数据框的易用,默认不会将字符串转化为因子型。选择tibble数据的子集,返回的结果仍是tibble类型
创建数据框: tibble()
强制转化数据框: as_tibble()
创建数据框
#tibble::tibble意识是导入tibble包的tibble函数df<-tibble::tibble(x=c(1,2,3,4),name=c("张三","李四","王五","赵六"),age=c(25,23,30,18))df
colnames(df)
##[1]"x""name""age"
rownames(df)
##[1]"1""2""3""4"
读写实战
安装
install.packages(c("readtext","readr","readxl","writexl"))
读取文件相关操作
读取csv
默认csv文件为utf-8编码
#读取csvdf<-readr::read_csv('data/waimai8k.csv')#为了展示的更好看一些df<-DT::datatable(df)df
读取excel文件
df2<-readxl::read_excel('data/data.xlsx')df2
读txt
document<-readtext::readtext('data/三体.txt')document
#全部显示#document['text']#显示前200个字符substr(document['text'],1,200)
##[1]"\n------------\n\n第1章科学边界(1)\n\n 恋上你看书网 630bookla ,最快更新三体(全集)最新章节!\n\n 汪淼觉得,来找他的这四个人是一个奇怪的组合:两名警察和两名军人,如果那两个军人是武警还算正常,但这是两名陆军军官。\n\n 汪淼第一眼就对来找他的警察没有好感。其实那名穿警服的年轻人还行,举止很有礼貌,但那位便衣就让人讨厌了。这人长得五大三粗,一脸横肉,穿"
document[['doc_id']]
##[1]"三体.txt"
#全部显示#document[['text']]#显示前200个字符substr(document[['text']],1,200)
##[1]"\n------------\n\n第1章科学边界(1)\n\n 恋上你看书网 630bookla ,最快更新三体(全集)最新章节!\n\n 汪淼觉得,来找他的这四个人是一个奇怪的组合:两名警察和两名军人,如果那两个军人是武警还算正常,但这是两名陆军军官。\n\n 汪淼第一眼就对来找他的警察没有好感。其实那名穿警服的年轻人还行,举止很有礼貌,但那位便衣就让人讨厌了。这人长得五大三粗,一脸横肉,穿"
导入多个txt文件
list.files() 某路径下多个文件
#获取文件列表files<-list.files('data/txts',full.names=TRUE)head(files)
##[1]"data/txts/三孚股份.txt""data/txts/三棵树.txt"##[3]"data/txts/三江购物.txt""data/txts/上海九百.txt"##[5]"data/txts/上海机电.txt""data/txts/上海物贸.txt"
texts<-c()doc_ids<-c()for(fileinfiles){document<-readtext::readtext(file,encoding='gbk')doc_ids<-c(doc_ids,document[['doc_id']])texts<-c(texts,document[['text']])#文本全部导入到tibble#texts<-c(texts,substr(document[['text']],1,50))#截取前50个字符的文本,方便显示}df<-tibble::tibble(doc_ids=doc_ids,texts=texts)head(df)
写入文件相关操作
存入excel
使用writexl包的write_xlsx(x, path)
x: tibble表数据
path: xlsx文件路径
#写入xlsxwritexl::write_xlsx(df,"output/reports.xlsx")
存入csv
使用readr包的write_csv(x, path)
x: tibble表数据
path: csv件路径
#写入csvreadr::write_csv(df,"output/reports.csv")
往期文章
plotnine: Python版的ggplot2作图库小案例: Pandas的apply方法stylecloud:简洁易用的词云库用Python绘制近地方财政收入变迁史视频Python网络爬虫与文本数据分析读完本文你就了解什么是文本分析文本分析在经管领域中的应用概述综述:文本分析在市场营销研究中的应用从记者的Twitter关注看他们稿件的党派倾向?Pandas时间序列数据操作70G上市公司定期报告数据集文本数据清洗之正则表达式shreport库: 批量下载上海证券交易所上市公司年报Numpy和Pandas性能改善的方法和技巧漂亮~pandas可以无缝衔接BokehYelpDaset: 酒店管理类数据集10+G
后台回复关键词【R读写】获取本文代码和数据
“分享”和“在看”是更好的支持!