2.2 搜索就是所有
- 2020 年 4 月 2 日
- 笔记
刚刚情人节过去,也想来一篇数据分析的实例。别黑我,别恶心我。从网上找了一份2000W的数据,粗略处理后,导入MySql,试着看看MySql这2000W数据的效果如何。
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,进行清洗。如下:
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),'行'
清洗完毕后,对数据的性别进行统计:
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
对开房的年龄进行一个简单分析:
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年的数据了,这些年峰值肯定会往后。
附开房记录查询地址:开房记录查询