一、前言
数据来源:https://www.zhenai.com/zhenghun/ 本文利用 Python 分析了按城市寻找所有地区的征婚信息,看看相亲男女的画像。
二、数据查看和预处理
导入用到的库
import pandas as pd
import re
读取数据,查看前 5 行
df = pd.read_excel('marriage.xlsx')
df.head()
结果如下:
查看索引、数据类型和内存信息
df.info()
可以看到数据都没有缺失值。
获取到的数据里,居住地是各地区的,为了便于分析,需要处理成省级行政区,学历/月薪那一列数据,有些是月薪,有些是学历,可以分别处理成两列数据,是学历的,提取出学历层次,月薪标记为 "未知";是月薪的,提取出月薪并计算,学历标记为 "未知"。
# 获取34个省级行政区域,包括23个省,5个自治区,4个直辖市,2个特别行政区的名称
with open('地区.txt', 'r', encoding='utf-8') as f:
area = f.read().split('\n')
print(area)
print(len(area))
结果如下:
['北京', '上海', '天津', '重庆', '黑龙江', '吉林', '辽宁', '内蒙古', '河北', '新疆', '甘肃', '青海', '陕西', '宁夏', '河南', '山东', '山西', '安徽', '湖北', '湖南', '江苏', '四川', '贵州', '云南', '广西', '西藏', '浙江', '江西', '广东', '福建', '台湾', '海南', '香港', '澳门']
34
areas_list = []
for i in df['居住地']:
for j in area:
if j in i:
areas_list.append(j)
break
else:
areas_list.append('未知')
df['居住地'] = areas_list
df.head()
结果如下:
with open('学历.txt', 'r', encoding='utf-8') as fp:
edu = fp.read().split('\n')
print(edu)
很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:810735403
结果如下:
['博士', '硕士', '本科', '大专', '中专', '高中', '初中', '小学']
salary_list = []
edu_list = []
for item in df['学历/月薪']:
if '元' in item: # 这一列的数据是表达月薪的话 计算
data = re.findall('\d+', item)
data = [int(x) for x in data]
salary = int(sum(data) / len(data)) # 取整
salary_list.append(salary)
edu_list.append('未知')
else:
salary_list.append('未知')
for e in edu:
if e in item:
edu_list.append(e)
break
else:
edu_list.append('未知')
print(len(edu_list))
print(len(salary_list))
df['学历'] = edu_list
df['月薪'] = salary_list
df.head()
结果如下:
这时候数据处理好了,可以删掉学历/月薪这一列,再重新保存到Excel。
del df['学历/月薪']
df