Python数据分析与可视化Pandas数据载入与预处理(实训三)
Posted ZSYL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python数据分析与可视化Pandas数据载入与预处理(实训三)相关的知识,希望对你有一定的参考价值。
小费数据预处理
import pandas as pd
import numpy as np
fdata=pd.read_excel('tips_mod.xls')
fdata.head()
Unnamed: 0 | 消费总额 | 小费 | 性别 | 是否抽烟 | 星期 | 聚餐时间段 | 人数 | |
---|---|---|---|---|---|---|---|---|
0 | 0 | 16.99 | 1.01 | Female | No | Sun | Dinner | 2 |
1 | 1 | 10.34 | 1.66 | Male | No | Sun | Dinner | 3 |
2 | 2 | 21.01 | 3.50 | Male | No | Sun | Dinner | 3 |
3 | 3 | 23.68 | 3.31 | Male | No | Sun | Dinner | 2 |
4 | 4 | 24.59 | 3.61 | Female | No | Sun | Dinner | 4 |
#规格大小
print(fdata.shape)
# 描述信息
fdata.describe()
(244, 8)
Unnamed: 0 | 消费总额 | 小费 | 人数 | |
---|---|---|---|---|
count | 244.000000 | 244.000000 | 244.000000 | 244.000000 |
mean | 121.500000 | 19.785943 | 2.998279 | 2.569672 |
std | 70.580923 | 8.902412 | 1.383638 | 0.951100 |
min | 0.000000 | 3.070000 | 1.000000 | 1.000000 |
25% | 60.750000 | 13.347500 | 2.000000 | 2.000000 |
50% | 121.500000 | 17.795000 | 2.900000 | 2.000000 |
75% | 182.250000 | 24.127500 | 3.562500 | 3.000000 |
max | 243.000000 | 50.810000 | 10.000000 | 6.000000 |
# 显示用餐时间time的不重复值
fdata['聚餐时间段'].unique()
array(['Dinner', 'Lunch'], dtype=object)
# 修改拼写错误的字段
fdata.ix[fdata['聚餐时间段']=='Diner','time']='Dinner'
fdata.ix[fdata['聚餐时间段']=='Dier','time']='Dinner'
fdata['聚餐时间段'].unique()
D:\\ProgramData\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py:2: FutureWarning:
.ix is deprecated. Please use
.loc for label based indexing or
.iloc for positional indexing
See the documentation here:
http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#ix-indexer-is-deprecated
D:\\ProgramData\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py:3: FutureWarning:
.ix is deprecated. Please use
.loc for label based indexing or
.iloc for positional indexing
See the documentation here:
http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#ix-indexer-is-deprecated
This is separate from the ipykernel package so we can avoid doing imports until
array(['Dinner', 'Lunch'], dtype=object)
# 检测数据中的缺失值
fdata.isnull().sum()
Unnamed: 0 0
消费总额 0
小费 0
性别 0
是否抽烟 0
星期 0
聚餐时间段 0
人数 0
time 244
dtype: int64
# 删除一行内有两个缺失值的数据
fdata.dropna(thresh=6,inplace=True)
fdata.isnull().sum()
Unnamed: 0 0
消费总额 0
小费 0
性别 0
是否抽烟 0
星期 0
聚餐时间段 0
人数 0
time 244
dtype: int64
# 删除性别或者聚餐时间为空的行
fdata.dropna(subset=['性别','聚餐时间段'],inplace=True)
fdata.isnull().sum()
Unnamed: 0 0
消费总额 0
小费 0
性别 0
是否抽烟 0
星期 0
聚餐时间段 0
人数 0
time 244
dtype: int64
# 对剩余空缺的数据用平均值替代
fdata.fillna(fdata.mean(),inplace=True)
fdata.isnull().sum()
Unnamed: 0 0
消费总额 0
小费 0
性别 0
是否抽烟 0
星期 0
聚餐时间段 0
人数 0
time 244
dtype: int64
加油!
感谢!
努力!
以上是关于Python数据分析与可视化Pandas数据载入与预处理(实训三)的主要内容,如果未能解决你的问题,请参考以下文章
Python+pandas+matplotlib数据分析与可视化案例
python数据可视化案例——平行坐标系(使用pyecharts或pandas)
《Python开发 - Python库》PandasGUI安装与使用(数据可视化分析工具)