大厂职员是如何处理数据的了?
作者:互联网
介绍如何用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
通过head
、tail
了解数据的前后几行,实现对数据的直观认识。
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/
第二版链接:https://book.douban.com/subject/30283996/
标签:150,non,处理,columns,df,大厂,数据,virginica,职员 来源: https://blog.csdn.net/BlackPanther30/article/details/117697699