Python综合实战案例-数据清洗&分析

“”"


### 3. 处理页数数据


⽬前只要评分是数值型数据,我们还要将⻚数、价格、评论数量转换成数值型数据。



import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rc(‘font’, **{‘family’:‘SimHei’})

导⼊数据

df = pd.read_excel(‘books.xlsx’)

删除第9列

df = df.drop(‘Unnamed: 9’, axis=1)

对数据做清洗(缺失值与异常值)

df.describe()
df.info()
df.dtypes

print(“---------------------------------”)

前期分析

print( df[‘页数’].describe() )
‘’’
count 60671
unique 2109
top None
freq 4267
Name: 页数, dtype: object
‘’’
print( df[‘页数’].isnull().sum() ) # 返回:0 ,这样看不出来
print( len(df[df[‘页数’]==‘None’]) ) # 返回:4267 , 看看有多少 None 值页数信息

print(“---------------------------------”)

转换

定义 convert_to_int ⽅法处理页数数据,如果为 None 则填充 0

import re
def convert2int(x):
if re.match(‘^\d+$’,str(x)):
return x
else:
return 0

df[‘页数’] = df[‘页数’].apply(convert2int)

‘’’

或者⽤ lambda 表达式

df[‘页数’] = df[‘页数’].apply(lambda x: x if re.match(‘^\d+$’, str(x)) else 0)
df[‘页数’] = df[‘页数’].astype(int)

‘’’

print( df[‘页数’].describe() )
‘’’
count 6.067100e+04
mean 6.883281e+06
std 1.695365e+09
min 0.000000e+00
25% 1.940000e+02
50% 2.640000e+02
75% 3.600000e+02
max 4.175936e+11
Name: 页数, dtype: float64
‘’’
print( df[‘页数’].isnull().sum() ) # 返回:0
print( len(df[df[‘页数’]==‘None’]) ) # 返回:0


### 4.处理价格数据



import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rc(‘font’, **{‘family’:‘SimHei’})

导⼊数据

df = pd.read_excel(‘books.xlsx’)

删除第9列

df = df.drop(‘Unnamed: 9’, axis=1)

对数据做清洗(缺失值与异常值)

df.describe()
df.info()
df.dtypes

print(“---------------------------------”)

处理价格数据

df[

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值