美文网首页Python随手查python 学习生活不易 我用python
用python做数据分析1|python中各种数据类型及txt文

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

作者: 是蓝先生 | 来源:发表于2016-04-25 16:26 被阅读2641次

    今天是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()

    相关文章

      网友评论

        本文标题:用python做数据分析1|python中各种数据类型及txt文

        本文链接:https://www.haomeiwen.com/subject/csitrttx.html