查看数据
print(train.head(10)) 显示前10条信息
显示为NaN的为空值,需要进行填充处理,SVM/神经网络 对于 空值/离散值 不具有容忍性。
树模型是具有容忍性的非数值型参数最后都需要化成数值型
type(train)----结果是 pandas.core.DataFrame---DataFrame 表示一张二维的数据表,有行和列。
pd.DataFrame()---将数据转换成表格 train.info----查看数据信息,可以看到哪些数据有缺失值
数据类型 train.get_dtype_counts()---查看每种数据类型的数数据查找
找出符合条件的数据: train.query('条件')
另一种写法:train[train.条件]---(例如:train[train.salary>2000])量 train.isnull()---查看是否有空值,是空值的地方为true
数据查找:
找出符合条件的数据: train.query('条件'),另一种写法:train[train.条件]---(例如:train[train.salary>2000])
联合查找:(数据表名称--后面都用train代替).query('条件' and '条件2')
选出特定的列:train.fliter(item = [' 列名 ', ' 列名 ' ])。简化写法:train[ [' '], [' '] ]
选出特定的行:train.filter( 'like = 2', axis =0 )。 表示选出第二行,axis=0表示选取,等于1表示选取列
分组:train.groupby( [ '某项属性' ] ).count()。以这种属性进行分组。显示他们的个数
判断分布
统计函数:train.desccribe( )。描述数据的统计特征
判断数据是否是正态分布:判断数据的偏度,如果是偏态分布,将其转变为正态分布(取对数等等)--- np.log(train[ ' ' ])
如果偏度偏向右边,那么可以对相应的值(最大值)进行强改,train( ' ' ) == 数值
生成随机数:np.random.rand(5)。生成5个大小再[0,1)之间的数
以某种属性进行求取平均值:train.groupby( [ '某项属性' ] ).mean()。
统计函数:.mean(),.sum(),.stdz(),.max,.min,.count()
排序
对列进行排序: .某列的名称.sort_values( )
对DataFrame(表格)进行排序: .sort_values( by = ' 某项列属性 ' )
多属性排序: .sort_values( by =[ ' ' , ' ' ])
自降排序: .sort_values( by =[ ' ' ],ascending = False)
DataFrame(表格)的增删改查
选择某一行: train.iloc[ 0 ] 选择第一行,行是哈希表属性。
可以进行选取行中某个属性:train.iloc[ 0 ] [ ' ' ]
可以使用行名来访问某一行: train.loc[ ' ' ]
访问某一行或者某一列:train.loc[ 0,1 ]----选择第一行第二列
数据的修改: 1. .at[ 1, ' data ' ] = 1 将属性为data的列的第一个元素改为12. .iat[ 1 , 1 ] = 2 表示将数据的第二行和第二列的数据变为2
添加数据
添加一行数据: 1. .train.append( { ' a ': 2,... } ,ingore = True)。使用append添加的必须是dict的形式。不会改变原始数据表的内容。2. .loc[ 6 ] = [ ' ', ' ' ]。增加第六行数据
添加一列数据:1. .assign(aaa = [ 1, 2 ,3 ])。 增加一列名字为aaa的数据,值为1 2 3。不会改变原数据。2. .loc[ :,' aaa ' ] = [ 1, 2 ,3 ] 。再原来的列表中增加一列
统计DataFrame(表格)的空值:train.isnull.sum()---统计空值的个数
缺失值的填充:
1.均值填充---train.mean()
2.中位数填充---train.median()
3.函数填充(可以和数据集的某些列产生函数关系)
填充办法: .fillna( 填充条件 )。例:.fillna(train.mean())----均值填充
正态分布中单一数据对于数据集的影响:
山顶/位于95%+的数据----峰度+影响。峰度偏高
山腰---降低峰度
离散值填充
1.空值填充---就是增加一个None
2.高频填充
3.关系填充(数据的含义,参考其他的列进行填充)