本文将记录对知乎专栏中的一篇小项目,自己尝试中所遇到的问题。
知乎链接: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