用python做数据分析1|python中各种数据类型及txt文件操作

今天是4.25号。

很快四月也走到了尾声,学期即将过半,我还没有找到理想的实习。不过投出去的文章已经有一篇有了好的结果,另外四篇也期待和祈祷都被录用~~

python爬虫的学习自己大抵学了60%吧,但自己最近在想自己学习python最终目的是想用python来进行数据分析的,爬虫只算是获取数据的第一步,那么接下来是不是应该多学学numpy,pandas以及其他数据分析的库。所以最近还会补充点python中的基础知识,为后面的学习作好准备。


第一部分 数据类型相关知识

能够进行迭代的数据类型有:字符串,列表,字典。

1.数字类型
int(),float()
运算符:%(取余),//(除后取整,例如a=3.8//2 ,结果为1.0)
逻辑运算符:and, or, not
round()作用是四舍五入
break是跳出所在的while或者for循环

2.字符串类型
常用函数:len(),str(),可以通过“+”和“*”来连接;s.replace('a','b')即将字符串s中的 所有a字符用b字符来替换。

常用操作方法.png

如何格式化字符串

在Python中,采用的格式化方式和C语言是一致的,用%实现,举例如下:
'Hello, %s' % 'world'
'Hello, world'
'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'
你可能猜到了,%运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。

常见的占位符有:
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数

3.列表类型

列表操作1.png
列表操作2.png

4.字典型数据

(1)访问字典中的一项的值:
dictionaryName[key],返回键key对应的值value。

(2)删除字典中的一项:
del dictionaryName[key]

(3)字典的遍历:
设a为一个字典型数据,则
for i in a.keys(),values(),items()经常用到。

(4)判断一个键key知否在字典中:
in 或者not in
eg:'city' in infor.keys()

其他操作方法:


字典的操作.png

5.集合(set)
若s='sunset',a=set(s)
得到a:set(['s','u','n','s','e','t'])
两个集合之间的操作有多种,主要如下:

四种运算.PNG

集合运算.png

第二部分 文件操作相关知识

字符串在python中默认以unicode编码保存的,常见的编码方式有:
(1)ASCII编码
(2)UTF-8编码
(3)GBK编码

(4)Unicode编码
(1)、(2)、(3)通过decode()将字符串解码为unicode,通过encode()将unicode编码字符串转为其他三种编码,

文件一般分为文本文件和二进制文件(除文本以外的文件)
操作文件一般包括:打开文件,(读取、写入、定位、追加、计算)文件,关闭文件。

(1)打开文件
用法f=open(<'xxx文件路径'>,<mode>),其中f是一个变量

Paste_Image.png

(2)文件读取、写入、定位

a)读取文件用法f.read(),f.readline(),f.readlines()三者只是返回值不同,第一个返回的是整个文本的字符串;第二个返回一行的字符串;第三个返回整个文本的列表,其中一行字符串为一个元素。
b)写入文件的用法,使用时需要传入参数file.write(a),file.writelines(a),二者区别在于第一个是写入字符串a到文件file中;第二个是写入列表a到文件file中。

Paste_Image.png

Paste_Image.png

完整例子如:
file=open('C:\Users\guohuaiqi\Desktop\1.txt','w') #打开模式要用''括起来
file.writelines(a)或者file.readlines()
file.close


最后贴上一个用于词频统计(仅仅针对英文文章)的代码:

步骤为:
(1)用爬虫获取内容,用空格''replace文章中出现的其他符号,然后保存为text格式文件;
(2)定义一个函数,先用split('')对句子进行分割,然后对一行的单词进行统计;
(3)读取text文件,将每一行句子传入(2)中的函数,执行完毕后,将字典数据转化为list数据然后进行排序。

此外有两点知识新学到如下:
(4)使用如b={}为一个字典数据,可直接用list(b.items())将b转化为列表数据。

(5)使用sorted()函数对列表中元素是cell的数据进行排序
例:student_tuples = [('john', 'A', 15),('jane', 'B', 12),('dave', 'B', 10)]
那么sorted(student_tuples, key=itemgetter(2), reverse=True)表示对student_tuples列表按元组中的第三个元素age进行排序**,其中reverse(布尔值)参数用来标记排序顺序的,True-递减,False-递增(默认)

(6)打开文件的路径时要么为'C:\Users\guohuaiqi\Desktop\1.txt',也可是r'C:\Users\guohuaiqi\Desktop\1.txt',这样r后的字符串都按字面意思而不进行转义。

__author__ = 'guohuaiqi'
#!/usr/bin/env python
# _*_ coding: utf-8 _*_

import requests
from bs4 import BeautifulSoup
import operator

url='https://hbr.org/2016/04/what-we-can-learn-from-one-of-the-worlds-most-mocked-cars'
a=[]
def get_contents(url):
    web_data=requests.get(url)
    soup=BeautifulSoup(web_data.text,'lxml')
    paragraphs=soup.select('div.article.article-first-row p')
    for content in paragraphs:
        b=content.get_text().lower()
        for ch in b:
            if ch in ',().:“”?‘’-':
                b=b.replace(ch,'')
                b=b.replace('\xa0',' ')
        a.append(b)
    file=open('C:\\Users\\guohuaiqi\\Desktop\\1.txt','w')
    file.writelines(a)
    file.close
    print('done!!!')

def words_count(line,wordsCount):
    words=line.split(' ')  #将每一行按空格分割成一个列表
    for word in words:
        if word in wordsCount.keys():  #应该用wordsCount.keys()而不是wordsCount,否则在计数we时会把包含we的单词如were等计算在内
            wordsCount[word]+=1
        else:
            wordsCount[word]=1

wordsCount={}  #wordsCount为一个空字典
def main():
    f=open('C:\\Users\\guohuaiqi\\Desktop\\1.txt','r')
    for line in f.readlines():
        words_count(line,wordsCount)
    pairs=list(wordsCount.items())  #会把字典中的键和值转化为一个元组cell,每一个cell作为list的一个元素返回
    print(sorted(pairs,key=operator.itemgetter(1),reverse=True))
    f.close

if __name__=='__main__':
    main()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容