标签:150 non 处理 columns df 大厂 数据 virginica 职员
介绍如何用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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。