前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python数据分析实例操作

Python数据分析实例操作

作者头像
hankleo
发布2020-09-16 11:14:37
3370
发布2020-09-16 11:14:37
举报
文章被收录于专栏:Hank’s Blog
代码语言:javascript
复制
import pandas as pd  #导入pandas
import matplotlib.pyplot as plt #导入matplotlib
from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
%matplotlib inline

数据读取与索引

代码语言:javascript
复制
bra = pd.read_csv('data/bra.csv')
bra.head()

选取列

代码语言:javascript
复制
bra.content
代码语言:javascript
复制
bra[['creationTime','productColor']].head()

选择行

代码语言:javascript
复制
bra[1:6]

选择行和列

代码语言:javascript
复制
bra.ix[[2,3],[1,3]]  #使用ix
代码语言:javascript
复制
bra.ix[1:5,['productColor']]  
代码语言:javascript
复制
bra.iloc[[2,3],[1,3]] #使用iloc
代码语言:javascript
复制
bra.loc[1:5,['content','creationTime','productSize']] #使用loc
代码语言:javascript
复制
bra.loc[1:5,'content':'userClientShow']

数据预处理

缺失值

代码语言:javascript
复制
bra.describe() #查看数据的分布情况,可返回变量和观测的数量、缺失值和唯一值的数目、平均值、分位数等相关信息
代码语言:javascript
复制
bra['userClientShow'].unique()  #userClientShow列有几种选项
代码语言:javascript
复制
bra['userClientShow'].isnull().sum() #初始缺失值数量
代码语言:javascript
复制
bra['userClientShow'].fillna('不详',inplace=True) #缺失值替换为“不详”

bra['userClientShow'].isnull().sum() #赋值后的缺失值数量

新增列

代码语言:javascript
复制
bra.dtypes #查看属性
代码语言:javascript
复制
bra['creationTime'] = pd.to_datetime(bra['creationTime']) #更新类型
bra.dtypes
代码语言:javascript
复制
bra['hour'] = [i.hour for i in bra['creationTime']] #新建hour列
bra

字符串操作

代码语言:javascript
复制
bra.productSize.unique() #查看productSize的唯一值
代码语言:javascript
复制
cup = bra.productSize.str.findall('[a-zA-Z]+').str[0] #新增列cup
cup2 = cup.str.replace('M','B')
cup3 = cup2.str.replace('L','C')
cup4 = cup3.str.replace('XC','D')
bra['cup'] = cup4  
bra.head()
代码语言:javascript
复制
bra['cup'].unique() #查看cup唯一值

数据转换

代码语言:javascript
复制
bra.productColor.unique() #查看productColor唯一值
代码语言:javascript
复制
def getColor(s):
    if '黑' in s:
        return '黑色'
    elif '肤' in s:
        return '肤色'
    elif '蓝' in s:
        return '蓝色'
    elif '红' in s:
        return '红色'
    elif '紫' in s:
        return '紫色'
    elif '白' in s:
        return '白色'
    elif '粉' in s:
        return '粉色'
    elif '灰' in s:
        return '灰色'
    elif '绿' in s:
        return '绿色'
    elif '青' in s:
        return '青色'
    else:
        return s
bra['color'] = bra['productColor'].map(getColor) #从productColor列查询,赋值到定义的函数getColor,最终新增列color
bra
代码语言:javascript
复制
bra.color.unique() #查询color的唯一值

数据可视化

代码语言:javascript
复制
x = [1991,1992,1993,1994,1995,1996,1997]
y = [23,56,38,29,34,56,92]
plt.plot(x,y) #调用函数plot
代码语言:javascript
复制
plt.figure(figsize=(8,6),dpi=80) #调用函数firgure
plt.plot(x,y)
代码语言:javascript
复制
hour = bra.groupby('hour')['hour'].count()  #hour列排序
hour
代码语言:javascript
复制
plt.xlim(0,25) #横轴0~25
plt.plot(hour,linestyle='solid',color='royalblue',marker='8') #颜色深蓝
代码语言:javascript
复制
cup_style = bra.groupby('cup')['cup'].count() #cup列唯一值得数量
cup_style
代码语言:javascript
复制
plt.figure(figsize=(8,6),dpi=80)
labels = list(cup_style.index)
plt.xlabel('cup') #x轴为cup
plt.ylabel('count') #y轴为count数量
plt.bar(range(len(labels)),cup_style,color='royalblue',alpha=0.7) #alpha为透明度
plt.xticks(range(len(labels)),labels,fontsize=12)
plt.grid(color='#95a5a6',linestyle='--',linewidth=1,axis='y',alpha=0.6)
plt.legend(['user-count'])
for x,y in zip(range(len(labels)),cup_style):
plt.text(x,y,y,ha='center',va='bottom')
代码语言:javascript
复制
color_style = bra.groupby('color')['color'].count() #color列唯一值得数量
color_style
代码语言:javascript
复制
plt.figure(figsize=(8,6),dpi=80)
plt.subplot(facecolor='gainsboro',alpha=0.2)
colors = ['brown','orange','gray','white','pink','purple','red','green','wheat','blue','gold','springgreen','black'] #颜色种类
labels = list(color_style.index)
plt.xlabel('count') #x轴为count数量
plt.ylabel('color') #y轴为color
plt.title('Color Distribution') #定义标题
plt.barh(range(len(labels)),color_style,color=colors,alpha=1)
plt.yticks(range(len(labels)),labels,fontsize=12)
plt.grid(color='#95a5a6',linestyle='--',linewidth=1,axis='x',alpha=0.4)
代码语言:javascript
复制
bra.head(30)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-07-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据读取与索引
  • 选取列
  • 选择行
  • 选择行和列
  • 数据预处理
    • 缺失值
      • 新增列
        • 字符串操作
          • 数据转换
            • 数据可视化
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档