对pandas进行数据预处理的实例讲解

栏目: 数据库 · 发布时间: 5年前

内容简介:引入包和加载数据12

引入包和加载数据

1

2

3

4

5

import pandas as pd

import numpy as np

train_df =pd.read_csv('../datas/train.csv') # train set

test_df = pd.read_csv('../datas/test.csv') # test set

combine = [train_df, test_df]

清洗数据

查看数据维度以及类型

缺失值处理

查看object数据统计信息

数值属性离散化

计算特征与target属性之间关系

查看数据维度以及类型

1

2

3

4

5

6

查看前五条数据

print train_df.head(5)

查看每列数据类型以及nan情况

print train_df.info()

获得所有object属性

print train_data.describe(include=['O']).columns

查看object数据统计信息

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

查看连续数值属性基本统计情况

print train_df.describe()

查看object属性数据统计情况

print train_df.describe(include=['O'])

统计Title单列各个元素对应的个数

print train_df['Title'].value_counts()

属性列删除

train_df = train_df.drop(['Name', 'PassengerId'], axis=1)

缺失值处理

直接丢弃缺失数据列的行

print df4.dropna(axis=0,subset=['col1']) # 丢弃nan的行,subset指定查看哪几列

print df4.dropna(axis=1) # 丢弃nan的列

采用其他值填充

dataset['Cabin'] = dataset['Cabin'].fillna('U')

dataset['Title'] = dataset['Title'].fillna(0)

采用出现最频繁的值填充

freq_port = train_df.Embarked.dropna().mode()[0]

dataset['Embarked'] = dataset['Embarked'].fillna(freq_port)

采用中位数或者平均数填充

test_df['Fare'].fillna(test_df['Fare'].dropna().median(), inplace=True)

test_df['Fare'].fillna(test_df['Fare'].dropna().mean(), inplace=True)

数值属性离散化,object属性数值化

创造一个新列,FareBand,将连续属性Fare切分成四份

train_df['FareBand'] = pd.qcut(train_df['Fare'], 4)

查看切分后的属性与target属性Survive的关系

train_df[['FareBand', 'Survived']].groupby(['FareBand'], as_index=False).mean().sort_values(by='FareBand', ascending=True)

建立object属性映射字典

title_mapping = {"Mr": 1, "Miss": 2, "Mrs": 3, "Master": 4, "Royalty":5, "Officer": 6}

dataset['Title'] = dataset['Title'].map(title_mapping)

计算特征与target属性之间关系

object与连续target属性之间,可以groupby均值

object与离散target属性之间,先将target数值化,然后groupby均值,或者分别条形统计图

连续属性需要先切割然后再进行groupby计算,或者pearson相关系数

print train_df[['AgeBand', 'Survived']].groupby(['AgeBand'], as_index=False).mean().sort_values(by='AgeBand', ascending=True)

总结pandas基本操作

”'

创建df对象

””'

s1 = pd.Series([1,2,3,np.nan,4,5])

s2 = pd.Series([np.nan,1,2,3,4,5])

print s1

dates = pd.date_range(“20130101”,periods=6)

print dates

df = pd.DataFrame(np.random.rand(6,4),index=dates,columns=list(“ABCD”))

print df

df2 = pd.DataFrame({“A”:1,

‘B':pd.Timestamp(‘20130102'),

‘C':pd.Series(1,index=list(range(4)),dtype='float32'),

‘D':np.array([3]*4,dtype=np.int32),

‘E':pd.Categorical([‘test','train','test','train']),

‘F':'foo'

})

print df2.dtypes

df3 = pd.DataFrame({'col1':s1,

'col2':s2

})

print df3

'''

2.查看df数据

'''

print df3.head(2) #查看头几条

print df3.tail(3) #查看尾几条

print df.index #查看索引

print df.info() #查看非non数据条数

print type(df.values) #返回二元数组

print df3.values

print df.describe() #对每列数据进行初步的统计

print df3

print df3.sort_values(by=['col1'],axis=0,ascending=True) #按照哪几列排序

'''

3.选择数据

'''

ser_1 = df3['col1']

print type(ser_1) #pandas.core.series.Series

print df3[0:2] #前三行

print df3.loc[df3.index[0]] #通过index来访问

print df3.loc[df3.index[0],['col2']] #通过行index,和列名来唯一确定一个位置

print df3.iloc[1] #通过位置来访问

print df3.iloc[[1,2],1:2] #通过位置来访问

print "==="

print df3.loc[:,['col1','col2']].as_matrix() # 返回nunpy二元数组

print type(df3.loc[:,['col1','col2']].as_matrix())

'''

4.布尔索引,过滤数据

'''

print df3[df3.col1 >2]

df4 = df3.copy()

df4['col3']=pd.Series(['one','two','two','three','one','two'])

print df4

print df4[df4['col3'].isin(['one','two'])]

df4.loc[:,'col3']="five"

print df4

'''

5.缺失值处理,pandas将缺失值用nan代替

'''

print pd.isnull(df4)

print df4.dropna(axis=0,subset=['col1']) # 丢弃nan的行,subset指定查看哪几列

print df4.dropna(axis=1) # 丢弃nan的列


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入解析Spring MVC与Web Flow

深入解析Spring MVC与Web Flow

Seth Ladd、Darren Davison、Steven Devijver、Colin Yates / 徐哲、沈艳 / 人民邮电出版社 / 2008-11 / 49.00元

《深入解析Spring MVCgn Web Flow》是Spring MVC 和Web Flow 两个框架的权威指南,书中包括的技巧和提示可以让你从这个灵活的框架中汲取尽可能多的信息。书中包含了一些开发良好设计和解耦的Web 应用程序的最佳实践,介绍了Spring 框架中的Spring MVC 和Spring Web Flow,以及着重介绍利用Spring 框架和Spring MVC 编写Web ......一起来看看 《深入解析Spring MVC与Web Flow》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试