继续创作,加速生长!这是我参与「日新方案 10 月更文挑战」的第8天,点击检查活动详情

✔个人主页:Mr.Darcy8的主页

欢迎关注点赞保藏⭐留言以及沟通人生哲理学习心得

引进

前段时间咱们了解了pandas数据剖析东西的一些函数妙用,并学习了如何制造一些简单的图表。

但细心的同学不难发现咱们一直是在针对数字进行处理,这要求咱们在计算获取数据之初就对数据进行编码。

但是实际生活中会出现很多无法统一标准的数据。

就拿当今最火的某电商渠道为例,咱们之前做过的数据剖析是根据用户行为的,这些数据是有固定状况的(如当时咱们用0代表浏览,1代表购买,2代表保藏,3代表加入购物车),此类数据只需求这样编码一下,赋予每种行为一个代数即可进行计算剖析

而产品的款式呢?颜色呢?此类数据存在难以计数的状况,且可能实时更新,比方商家今天上新一个“雾霾蓝”的雨伞,明天上新一个“普鲁士蓝”的帽子……

莫非你要每新增一个产品就多加一个编码吗?每天数不清的产品新增,终究你是否需求为这些编码准备一个数据库,剖析的时分查询一下这个编码代表的是什么产品吗?

明显不现实。咱们需求对此类数据直接进行字符串的处理。今天就无妨让咱们一同来看看吧~

一、字符数据导入与根本了解

咱们这里采用某大数据渠道供给的电商渠道产品数据当然,是带有不规则字符串的

Pandas数据分析之字符串处理

用文件的打开方式打开csv文件。

Tip:其实CSV文件本质上能够理解成是文本文件了,这个与xlsx等Excel带格式的文件不一样哈。

咱们用len()函数看看一共有多少条记载

Pandas数据分析之字符串处理

a.columns()检查有多少个columns。能够理解成便是有多少个列,把这些列的名字列出来。

Pandas数据分析之字符串处理

从这里,细心的同伴们可能就发现了,能够检查columns,那这个a是不是dataframe类型的数据啊~

Pandas数据分析之字符串处理

答案是肯定的~咱们仍旧能够用dataframe的操作方法来应用在这里导入的csv字符串文件上。

Pandas数据分析之字符串处理

咱们在之前现已提到过,有许多产品的信息特征是空值详细有多少空值咱们是需求进行了解的,避免之后的处理遇到未知的问题——能够把这步视作数据清洗的前摇了:

a.isnull().sum()#检查各个column有多少空值

isnull函数记载是否为空值。sum()用于计算。

留意isnull运转往后,回来值是原dataframe同巨细的一个新dataframe,每个单元格里是布尔型的数据

Pandas数据分析之字符串处理

sum是在计算每个column中为True的个数

为什么sum计算的是每个column的True的个数呢?

  • sum()函数默认竖向计算,因为通常状况下这样更有意义(比方这里竖向计算的是各个信息栏对应的空缺值,来看看哪个信息许多商家都没填写,从而为往后设置哪些必填信息供给决议计划参阅。横向的每条数据一般都是单位产品,如果计算的话便是看看各个产品都有哪些信息没填,这样计算起来数据量非常大,相当于大数据剖析完了仍是大数据。)如果你仍是期望横向计算每行的True的个数,能够设置sum的参数axis=1,这样成果便是横向计算了。
    Pandas数据分析之字符串处理

二、字符串处理

这里只需求记住一点

Pandas字符串处理根本都是凭借str相关函数和方法完成的

Pandas数据分析之字符串处理

这里便是用常见的字符串处理方法。(案牍咱们采用字节跳动稀土,亲切感满满)

  • len函数计算长度回来数值
  • split函数按特定字符切割字符串回来列表
  • replace函数替换特点值
  • find函数回来第一个特定字符的索引(留意索引从0开端)

三、根据生成序列的groupby

咱们能够再次用groupby完成一些妙用。比方计算一些各个省份产品的数量:

Pandas数据分析之字符串处理

a.location.str.split(" ",expand=True)[0].head()

咱们能够剖析一下这串代码。

首要a.location很简单,便是把dataframe的location列提取出来。

莫非这样便是各个产品的城市了吗

咱们发现有些产品有两个城市

Pandas数据分析之字符串处理

咱们需求把首要城市提取出来,逻辑上比较合理些(比如你参加了一百篇SCI但是没有一篇一作,你觉得周围人会怎样评价你)

所以咱们采用.str把这个dataframe每行转化成字符串,再用split函数以空格为界把两个城市提取出来,此刻城市现已成为含有多个元素的列表。设置参数expand=true能够使数据类型变回dataframe。最终用列表索引[0]把最前面的城市别离提取出来即可。

Pandas数据分析之字符串处理

一次groupby的妙用,按a.location.str.split(" ",expand=True)[0]来分组,这便是小标题说的根据序列的groupby。最终size()计算之后就能够取得每个城市的数据了。这样的数据比较整洁且有意义

——你说为什么这么麻烦?直接groupby函数传入location作为参数不行吗?

Pandas数据分析之字符串处理

如图,每个城市组合都作为一个分组,这样大伙儿能看出来哪个城市产品最多吗?

新人上路,欢迎互相帮扶~Mr_darcy8的主页

能够的话给咱点个赞呗