python项目:获取微信好友信息(二)csv数据读取与处理

本文将记录对知乎专栏中的一篇小项目,自己尝试中所遇到的问题。

知乎链接:https://zhuanlan.zhihu.com/p/21967333

代码中:对csv文件读取,并利用pandas库处理,统计出好友信息。

pandas库安装:pip  install pandas

测试环境为python3

完整代码如下。

import pandas as pd

df = pd.read_csv('friend2_v2.csv', encoding="ISO-8859-1")  # 奇怪的编码

def city():
    """微信朋友圈的城市"""
    address = df['city'].value_counts()  # city
    print(address)


def gender():
    """微信朋友的性别比例
        1:男  2:女   3:未知
    """
    gender = df['male'].value_counts()  # male
    print(gender)


def star():
    """星标好友
        1:星标   0:非星标
    """
    star = df['star'].value_counts()  # star
    print(star)


def remark():
    remark = df['remark']  # remark MemberCount
    name = df['name']  # name
    star = df['star']
    print('type(remark)', type(remark))

    remarkCount = 0
    maleCount = 0
    femaleCount = 0
    for i in range(1, len(remark)):

        if star[i] != 'nan' or star[i] != '':

            if str(remark[i]).strip() == str(name[i]).strip() or remark[i] == 'noremark':  # remark[i] == 'noremark'
                remarkCount = remarkCount + 1  # 不认识的人,没有备注
            else:
                if judgeGender(i) == 'male':
                    maleCount = maleCount + 1
                elif judgeGender(i) == 'female':
                    femaleCount = femaleCount + 1
    print('微信总朋友人数:', str(len(remark)), '\n未标记的人数:', remarkCount, '\n')
    print('预计认识的总人数:', str(len(remark) - remarkCount), '\n')
    print('认识的人中汉子人数:', maleCount, '妹子人数:', femaleCount)


def judgeGender(index):
    """判断传入的某个位置的用户的性别
        参数:int行
        返回结果:字符串
    """
    gender = df['male']
    if gender[index] == 1:  # 不要‘1’这样
        return 'male'
    elif gender[index] == 2:
        return 'female'
    else:
        return 'unknown'


if __name__ == '__main__':
    remark()

在尝试过程中,问题主要会出现在编码问题上,详见: http://blog.csdn.net/qwerty200696/article/details/53016243


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值