大厂职员是如何处理数据的了?

介绍如何用python做数据预处理前,可以先了解下预处理有哪些步骤?简单列举了几个,如下:

  • 检查,数据是存在脏数据、缺失等情况,如何找出它们;
  • 清洗,如何丢弃异常的数据,或者进行补齐等操作;
  • 筛选,选出自己对自己有价值的数据;
  • 排序,指定字段排序,然后进行top n获取等;
  • 转换,数据join、合并、运算等;

不嫌麻烦,直接用python原生数据结构也能处理,但比较复杂。简单的方法,使用python强大的数据分析库pandas了。

如果想详细了解,可以去看看那本《利用python进行数据分析》。求推荐数据分析书籍的回答链接,如下:

现在要学python的matplotlib和pandas,有没有适合的这样的数据分手教程书?​www.zhihu.com图标

列举一些简单的例子,接下来随便说说。

 


数据

先准备数据,从sckit-learn中导入鸢尾花的数据集,并生成dataframe。如下:

import pandas as pd
from sklearn.datasets import load_iris

d = load_iris()
columns = ['SLength', 'SWidth', 'PLength', 'PWidth']
df = pd.DataFrame(d.data, columns=columns)
df["Type"] = list(map(lambda x: d.target_names[x], d.target))

接下来,通过这个数据集举一些使用示例。想了解数据集中数据含义可以去网上找资料看看。

检查

查看数据的基本信息,比如行数、列数,字段等。可通过info方法实现:

In [6]: df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 150 entries, 0 to 149
Data columns (total 5 columns):
SpealLength    150 non-null float64
Spealwidth     150 non-null float64
PetalLength    150 non-null float64
PetalLength    150 non-null float64
Type           150 non-null object
dtypes: float64(4), object(1)
memory usage: 5.9+ KB

通过headtail了解数据的前后几行,实现对数据的直观认识。

In [8]: df.tail(5)
Out[8]:
     SLength  SWidth  PLength  PWidth       Type
145      6.7     3.0      5.2     2.3  virginica
146      6.3     2.5      5.0     1.9  virginica
147      6.5     3.0      5.2     2.0  virginica
148      6.2     3.4      5.4     2.3  virginica
149      5.9     3.0      5.1     1.8  virginica

通过describe了解数据的一些统计信息

In [9]: df.describe()
Out[9]:
       SpealLength  Spealwidth  PetalLength  PetalLength
count   150.000000  150.000000   150.000000   150.000000
mean      5.843333    3.054000     3.758667     1.198667
std       0.828066    0.433594     1.764420     0.763161
min       4.300000    2.000000     1.000000     0.100000
25%       5.100000    2.800000     1.600000     0.300000
50%       5.800000    3.000000     4.350000     1.300000
75%       6.400000    3.300000     5.100000     1.800000
max       7.900000    4.400000     6.900000     2.500000

清洗

丢弃数据包含NaN的行。

In [10]: df.dropna()

注:这个数据集中没有NaN数据,测试不出效果。

数据补齐,比如前向补齐。

In [11]: df.fillna(method='ffill')

筛选

支持各种筛选,比如选择品种为virginica的鸢尾花,如下:

In [12]: df[df['Type'] == 'virginica']

排序

按花蕊宽度进行排序,即PWidth

In [13]: df.sort_values(by='PWidth')

转换

假设有了新品种,可以合并进来

In [14]: pd.concat([df, dn]).reset_index()

求平均数

In [15]: df.mean()

有点偷懒了,本来想写的细点,突然有点累,上面介绍的都是一些基本的数据处理方法。


前面提到的那本书的购买。

第一版链接:https://book.douban.com/subject/25779298/

利用Python进行数据分析

京东

¥ 71.50

第二版链接:https://book.douban.com/subject/30283996/

利用Python进行数据分析(原书第2版)

¥ 65.50起

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值