Python+pandas数据分析实践总结

 更新时间:2023年07月14日 08:45:16   作者:Logos_515  
这篇文章主要介绍了Python+pandas数据分析实践总结的相关资料,需要的朋友可以参考下

引言:

  在近日的python数据分析实战课中,我学习到使用python进行数据分析的流程、方法,对常使用的函数有一些认识和了解,对 numpy, pandas 包有了一定的理解但不深。这篇博客将是我自己用于总结归纳的圣地,我将对整个项目的 key point 进行归纳总结,提取其中精华之所在,汲取之加以奋发向前。

一、分析数据文件:

  在拿到数据的第一刻,莫急,先打开数据文件看一看,明白文件里的数据能够说明什么。于是乎我们得以提出分析的目标,并开始思索如何能够实现我们的目的。例如,我们手里有一份某电商平台一年的营销数据,这份数据中包含了达成交易订单的用户ID、本次订单对应的商品数量、总价、时间,思考:我们可以利用这些数据得到哪些结论?——从时间维度:分析不同月份的营销额;从客户维度:分析回购率、复购率、新老用户比例。根据得出的结论,我们得以制定相应的策略来提高商家的盈利。

二、数据预处理:

提一嘴,在文件最开始导入包的时候输入 plt.rcParams['font.sans-serif'] = 'SimHei' 以让中文能够正常显示(IPython中如此)

首先读取文件,利用 pandas 根据不同文件类型选择不同的读取函数:

  • csv: pd.read_csv('name.csv', encoding='utf-8/GBK')
  • text: pd.read_table('name.txt', names=columns, sep='\s+') # names指定每一列数据的含义,sep是划分数据时的参考,\s+表示跳过任意多的空格
  • excel: pd.read_excel('name.xlsx')

接着进行数据的预处理:

  • 对于出现NAN的行或列且需要删除的:data.dropna(axis=0, how='any', inplace=True) # 删除带有NAN的一整行数据,并修改原值
  • 对于重复出现的行或列:data.drop_duplicates(axis=0, inplace=True) # 删除重复的行,并修改原值
  • 对于无用的行或列:data.drop(columns='order_id', axis=1, inplace=True) # 删除 order_id 这一列
  • 对于需要更新索引的数据:data.reset_index(drop=True, inplace=True) 把原来的索引index列删除,并更新index

对于单位不统一的数据:如下图

看到销售金额一列的单位有元也有万元,并且含有逗号,为了方便处理,我们将其格式化。

def data_deal(number):
    if number.find('万元')!= -1:#找到带有万元的,取出数字,去掉逗号,转成float,*10000
        number_new = float(number[:number.find('万元')].replace(',',''))*10000
    else: # 找到带有元的并处理
        number_new = float(number[:number.find('元')].replace(',',''))
    return number_new
data['销售金额'] = data['销售金额'].map(data_deal)

这里我们使用到了 Series.map() 函数,该函数的作用与 apply 和 applymap 类似,接收一个函数或含有映射关系的字典型对象,区别如下:

  • apply:作用于dataframe的整行或整列
  • applymap:作用于dataframe的每一个元素
  • map:作用于series中的每一个元素,在df结构中无法使用map函数

详情:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.map.html?highlight=map

到此这篇关于Python+pandas数据分析实践总结的文章就介绍到这了,更多相关python数据分析内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python开发之射击闯关游戏的实现

    Python开发之射击闯关游戏的实现

    这篇文章主要为大家详细介绍了如何利用Python实现射击闯关游戏,文中的示例代码讲解详细,对我们学习Python有一定的帮助,感兴趣的小伙伴可以了解一下
    2023-01-01
  • Python 迭代器Iterator详情

    Python 迭代器Iterator详情

    这篇文章主要介绍了Python 迭代器Iterator详情,迭代器可以帮助我们解决面对复杂的数据场景时,快速简便的获取数据,下文关于其详细介绍,需要的小伙伴可以参考一下
    2022-05-05
  • Linux安装Python3如何和系统自带的Python2并存

    Linux安装Python3如何和系统自带的Python2并存

    这篇文章主要介绍了Linux安装Python3如何和系统自带的Python2并存,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Python读取键盘输入的2种方法

    Python读取键盘输入的2种方法

    这篇文章主要介绍了Python读取键盘输入的2种方法,主要使用的就是raw_input函数和input函数,本文分别给出使用实例,需要的朋友可以参考下
    2015-06-06
  • Opencv+Python实现图像运动模糊和高斯模糊的示例

    Opencv+Python实现图像运动模糊和高斯模糊的示例

    今天小编就为大家分享一篇关于Opencv+Python实现图像运动模糊和高斯模糊的示例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • python 爬取疫情数据的源码

    python 爬取疫情数据的源码

    这篇文章主要介绍了python 爬取疫情数据,,程序源码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • PyTorch中的nn.ConvTranspose2d模块详解

    PyTorch中的nn.ConvTranspose2d模块详解

    nn.ConvTranspose2d是PyTorch中用于实现二维转置卷积的模块,广泛应用于生成对抗网络(GANs)和卷积神经网络(CNNs)的解码器中。该模块通过参数如输入输出通道数、卷积核大小、步长、填充等,能控制输出尺寸和避免棋盘效应
    2024-09-09
  • python 轮询执行某函数的2种方式

    python 轮询执行某函数的2种方式

    这篇文章主要介绍了python 轮询执行某函数的2种方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • python 自动化将markdown文件转成html文件的方法

    python 自动化将markdown文件转成html文件的方法

    这篇文章主要介绍了python 自动化将markdown文件转成html文件的方法的相关资料,本文介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • python批量处理多DNS多域名的nslookup解析实现

    python批量处理多DNS多域名的nslookup解析实现

    这篇文章主要介绍了python批量处理多DNS多域名的nslookup解析实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06

最新评论