前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2.2 搜索就是所有

2.2 搜索就是所有

作者头像
幽鸿
发布2020-04-02 14:32:18
3340
发布2020-04-02 14:32:18
举报

刚刚情人节过去,也想来一篇数据分析的实例。别黑我,别恶心我。从网上找了一份2000W的数据,粗略处理后,导入MySql,试着看看MySql这2000W数据的效果如何。

代码语言:javascript
复制
mysql> select gender,count(*) from b_open_room where gender='M';
+--------+----------+
| gender | count(*) |
+--------+----------+
| M      | 12771175 |
+--------+----------+
1 row in set (41.92 sec)

mysql> select gender,count(*) from b_open_room where gender='F';
+--------+----------+
| gender | count(*) |
+--------+----------+
| F      |  6478109 |
+--------+----------+
1 row in set (41.73 sec)

处理下数据,发下开房的数据男女比例2:1,好像也是符合我国国情的。

当然也可以用现在时下流行的Python来直接处理该文本,首先拿到这2000W的开房数据的身份证ID,进行清洗。如下:

代码语言:javascript
复制
def clearRoom():
    ##data=pd.read_csv("d:/data/roomSimple.csv",usecols=['CtfId'])
    data=pd.read_csv("d:/data/shifenzheng.csv")
    print 'type:',type(data['CtfId'])
    
    #从20065154变成了18667528行
    data=data[data['CtfId'].str.len()==18]
    data['sex']=data['CtfId'].str[16]
    
    garbage=['*','A','-','p','d','o','�','e','+','/','L','t']
    userful=['1','2','3','4','5','6','7','8','9','0']
    
    #总共 18666343 行
    data=data[data['sex'].isin(userful)]
    data['sex2']=(data['sex'].astype('int')%2).replace(0,'F').replace(1,'M')
    data['age']=data['CtfId'].str[6:10]
    data.to_csv("d:/data/roomCtfId.csv")
    
    print data.head(15)
    #print '性别',data.drop_duplicates('sex')
    print '总共',len(data.index),'行'

清洗完毕后,对数据的性别进行统计:

代码语言:javascript
复制
def countRoomSex():
    gender=pd.read_csv("d:/data/roomCtfId.csv",usecols=['sex2'])
    #print type(gender)
    print gender.head(10)
    print '总共',len(gender.index),'行'
    
    #统计group by元素所占总数
    sizeSeries=gender.groupby('sex2').size()
    print sizeSeries

     对开房的年龄进行一个简单分析:

代码语言:javascript
复制
def countRoomAge():
    ageDF=pd.read_csv("d:/data/roomCtfId.csv",usecols=['age'])
    #data=data[data['CtfId'].str.len()==18]
    ageDF=ageDF[(ageDF['age']>1920) & (ageDF['age']<2012)]
    #ageDF.drop_duplicates('age').to_csv("d:/age.csv")
    #print ageDF.head(300).to_csv("d:/age.csv")
    ageSeries=ageDF.groupby('age').size()
    #print ageSeries
    
    fig=plt.figure()
    ax1=fig.add_subplot(111)
    ageDF=DataFrame(ageSeries)
    plt.plot(ageDF)
    plt.title(u'开房数据-年龄分析', fontproperties='SimHei')
    xmajorLocator   = MultipleLocator(10) #将x主刻度标签设置为10的倍数
    ax1.xaxis.set_major_locator(xmajorLocator)
    
    #设置坐标轴标签
    ax1.set_xlabel(u'出生年份', fontproperties='SimHei')
    ax1.set_ylabel(u'开房总次数', fontproperties='SimHei')
    
    plt.show()

由此可见,在中国,开房的男性是女性的两倍,年龄集中在80末。当然这是12年的数据了,这些年峰值肯定会往后。

附开房记录查询地址:开房记录查询

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档