对于一个数据集进行统计或者进行分析,避免不了的就是数据类型的转换。例如对日期进行统计分析、对价格进行统计分析、对销量进行统计分析……
做这些的前提是你需要有规范的数据格式
下面这类数据是当时我自己没有考虑到,所以需要进行转换,不过我觉得这种情况以后也会遇见,说不定你碰到什么人呢。

这种字符串类型数据会给你造成数据之间不能进行比较,解决的办法就是把它转化成int型或者float型
tips:
- 由于作者当时对数据清洗不了解,所以当时爬的时候并没有考虑那么多,导致现在需要对数据做个处理
- 作者最近一直在学pandas,这里作者也就使用pandas来进行数据类型转换
- 因为刚学,所以并不了解什么奇法;作者用了自己想到的办法也能对数据进行转换
这种销量数据可分为几种格式
- 纯数字的字符串类型
- 1.0万 一个万相当于三个0
- 15万 一个万相当于四个0
- 15.3万 一个万相当于三个0
流程如下(例如):
确定一个条件–> df[‘yuyueliang’]>10000)
确定满足条件的行–> df[(df[‘yuyueliang’]>10000)]
确定这些行的index–> df[(df[‘yuyueliang’]>10000)].index.tolist()

字符串类型是不能进行数据计算的
list=df[df['yuyueliang'].str.contains('万')].index.tolist()#返回带‘万’的索引


先解决第一类:例如11.4万
list2=df[df['yuyueliang'].str.contains('\d\d\.')].index.tolist() df.loc[list2,'yuyueliang']=df.loc[list2]['yuyueliang'].str.replace('万','000') df.loc[list2,'yuyueliang']=df.loc[list2]['yuyueliang'].str.replace('.','')

转换目标:114000

第二类:例如1.2万
list5=df[df['yuyueliang'].str.contains('.*?\..*?')].index.tolist() df.loc[list5,'yuyueliang']=df.loc[list5]['yuyueliang'].str.replace('万','000') df.loc[list5,'yuyueliang']=df.loc[list5]['yuyueliang'].str.replace('.','')

转换目标:12000

最后数据都转成数字型字符串后就可以进行最后的数据类型转换了

既然数据整理好了,就可以分析它了




记住这个网站了
记住这个网站了