【Python数据分析与可视化】Pandas数据载入与预处理-实训

【Python数据分析与可视化】Pandas数据载入与预处理-实训

导包

import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']#显示中文标签
plt.rcParams['axes.unicode_minus']=False #显示负号
%matplotlib inline

读取数据

f1=pd.read_excel('tips_mod.xls')
f1.head()
total_billtipsexsmokerdaytimesize
016.99NaNFemaleNoSunDinner2.0
1NaN1.66MaleNoMonDiner3.0
221.01NaNMaleNoSunDier3.0
323.683.31MaleNoSunDiner6.0
4NaN3.61FemaleNoSunDinner4.0

分析数据

1、查看数据的描述和统计信息;

f1.describe()
total_billtipsize
count236.000000236.000000240.000000
mean19.7921613.0180512.566667
std8.8984661.3948680.970126
min3.0700001.0000001.000000
25%13.2775002.0000002.000000
50%17.8150002.9600002.000000
75%24.0650003.6275003.000000
max50.81000010.0000006.000000

2、显示聚餐时间段time的不重复值;

unique_time=f1['time'].unique()
unique_time
array(['Dinner', 'Diner', 'Dier', nan, 'Lunch'], dtype=object)

3、修改拼写错误的字段值;

f1=f1.replace({'Diner':'Dinner','Dier':'Dinner'})
unique_time=f1['time'].unique()
unique_time
array(['Dinner', nan, 'Lunch'], dtype=object)

4、检测数据中的缺失值;

f1_null=f1.isnull().sum()
f1_null
total_bill    8
tip           8
sex           5
smoker        3
day           2
time          5
size          4
dtype: int64

5、删除一行内有两个缺失值的数据;

nan_list=[]
for i,row in f1.iterrows():
    if row.isnull().sum()==2:
        nan_list.append(i)
print(nan_list)
f1.drop(index = nan_list)
f1.isnull().sum()
[16, 23, 27, 42]





total_bill    8
tip           8
sex           5
smoker        3
day           2
time          5
size          4
dtype: int64

6、删除sex或time为空的行;

f1.dropna(subset=['sex','time'],axis=0,how='any',inplace=True)
f1.isnull().sum()
total_bill    6
tip           8
sex           0
smoker        3
day           2
time          0
size          4
dtype: int64

7、对剩余有空缺的数据用平均值替换;

f1['total_bill']=f1['total_bill'].fillna(f1['total_bill'].mean())
f1['tip']=f1['tip'].fillna(f1['tip'].mean())
f1['size']=f1['size'].fillna(f1['size'].mean())
f1.isnull().sum()
total_bill    0
tip           0
sex           0
smoker        3
day           2
time          0
size          0
dtype: int64
  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值