美文网首页
《利用Python进行数据分析学习笔记》学习笔记(二)

《利用Python进行数据分析学习笔记》学习笔记(二)

作者: 卜地锦 | 来源:发表于2017-09-16 17:19 被阅读0次

    1.工具和环境

    语言: python3.6

    系统:win7 64位

    数据库:MongoDB

    IDE:IPython notebook

    2.用pandas进行计数

    这里用的数据是一小部分知乎用户数据。

    import pymongo

    client = pymongo.MongoClient('localhost')  #连接数据库

    db = client.zhihu_follows  #指定数据库'zhihu_follows'

    collection = db.follows  #指定集合'follows'

    results = collection.find().sort('follower_count',pymongo.DESCENDING) 

    #将集合中的数据以'follower_count'键对应的值进行降序排序,

    #如果要升序排行,第二个参数改为pymongo.ASCENDING

    records = [result for result in results[:10]]  #列表推导式,取出前10项

    上面的代码用于读取数据,运行后,records对象是一组字典组成的列表。

    数据比较长,我就贴出来两条,形式如下:

    [{'_id': 'zhang-jia-wei',

    'answer_count': 3060,

    'articles_count': 732,

    'avatar_url': 'https://pic2.zhimg.com/424c70919_is.jpg',

    'avatar_url_template': 'https://pic2.zhimg.com/424c70919_{size}.jpg',

    'badge': [{'description': '优秀回答者',

    'topics': [{'avatar_url': 'https://pic3.zhimg.com/cf0156d3a_is.jpg',

    'excerpt': '文学是语言的艺术,包括戏剧、诗歌、小说、散文等,是文化的重要组成部分。',

    'id': '19556423',

    'introduction': '文学是语言的艺术,包括戏剧、诗歌、小说、散文等,是文化的重要组成分。',

    'name': '文学',

    'type': 'topic',

    'url': 'http://www.zhihu.com/api/v4/topics/19556423'}],

    'type': 'best_answerer'}],

    'follower_count': 1430376,

    'gender': 1,

    'headline': '公众号:张佳玮写字的地方',

    'id': 'f9de84865e3e8455a09af78bfe4d1da5',

    'is_advertiser': False,

    'is_followed': False,

    'is_following': False,

    'is_org': False,

    'name': '张佳玮',

    'offset': 4220,

    'type': 'people',

    'updateTime': datetime.datetime(2017, 9, 16, 10, 56, 13, 941000),

    'url': 'http://www.zhihu.com/api/v4/people/f9de84865e3e8455a09af78bfe4d1da5',

    'url_token': 'zhang-jia-wei',

    'user_type': 'people'},

    {'_id': 'kaifulee',

    'answer_count': 107,

    'articles_count': 2,

    'avatar_url': 'https://pic1.zhimg.com/c104d6f24_is.jpg',

    'avatar_url_template': 'https://pic1.zhimg.com/c104d6f24_{size}.jpg',

    'badge': [{'description': '创新工场 董事长', 'type': 'identity'}],

    'follower_count': 1015169,

    'gender': -1,

    'headline': '',

    'id': '043ff01e5d03c529c268d50f388012c2',

    'is_advertiser': False,

    'is_followed': False,

    'is_following': False,

    'is_org': False,

    'name': '李开复',

    'offset': 4300,

    'type': 'people',

    'updateTime': datetime.datetime(2017, 9, 16, 10, 16, 39, 447000),

    'url': 'http://www.zhihu.com/api/v4/people/043ff01e5d03c529c268d50f388012c2',

    'url_token': 'kaifulee',

    'user_type': 'people'}]

    from pandas import DataFrame, Series

    frame = DataFrame(records, columns =['name','follower_count','answer_count','articles_count','headline'] )

    #使用columns关键字指定数据中的一部分键,只传入这一部分的数据

    frame

    表格看起来就比字典形式的清晰多了,但是我还是不满意,我想把列索引换成中文的。

    frame_1 = frame.rename(columns = {'name':'用户', 'follower_count':'粉丝', 'answer_count':'答题', 'articles_count':'专栏文章', 'headline':'个人简介'})

    frame_1

    很好,列索引符合我的要求了。但是行索引是从0开始的,试着改一下,从1开始。花了不少功夫,没找到能简洁的解决问题的方案,只有类似于刚才改列索引的办法。

    于是我尝试着增加一个列,并将这一列指定为行索引。

    frame_1['序号'] = range(1,11)

    frame_2 = frame_1.set_index('序号')

    frame_2

    不行,序号自起一行,太丑了

    没找到方案,暂时只能是这样吧。

    相关文章

      网友评论

          本文标题:《利用Python进行数据分析学习笔记》学习笔记(二)

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