1.(1)迭代
dataframe作为循环对象时,返回各个列名
array作为循环对象时,返回第一层各个元素
dict作为循环对象时,返回key
dict.items() 作为循环对象时,返回(key,values)
(2)删除
字典删除 dict.pop(key)
dataframe删除 pd.drop(labels, axis=0) 删除行:labels=index某个值,axis=0 删除列:labels=colums某个值,axis=1 dropna()
array删除 np.delete(arr,obj,axis=None) 删除整行/整列
arr:输入向量
obj:表明哪一个子向量应该被移除。可以为整数或一个int型的向量
axis:表明删除哪个轴的子向量,若默认,则返回一个被拉平的向量
list删除 del a[i] remove(values) pop(位置)
(3)
numpy.insert(arr,obj,value,axis=None)
同理,value为插入的数值
arr:为目标向量
obj:为目标位置
value:为想要插入的数值
axis:为插入的维度
numpu.append(arr,values,axis=None)
将values插入到目标arr的最后。
2. | for or, & for and, and ~for not
> < == !=
条件判断,返回的True False
3.
df.loc['a',:]
df.iloc[0,:]
df.ix['a',:]=a.ix[0,:]
df.iloc[0,:].values 返回array
4.
numpy.where(condition,x,y) 满足条件,赋值x,不满足条件,赋值y
df.where(condition,y) y是不满足条件,赋值
5.随机筛选
df.sample(n=3)
n和frac不能同时使用
df.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None)
n是要抽取的行数。(例如n=20000时,抽取其中的2W行)
frac是抽取的比列。(有一些时候,我们并对具体抽取的行数不关系,我们想抽取其中的百分比,这个时候就可以选择使用frac,例如frac=0.8,就是抽取其中80%)
replace抽样后的数据是否代替原DataFrame()
weights这个是每个样本的权重,具体可以看官方文档说明。
random_state: int或numpy.random.RandomState,可选
种子为随机数生成器(如果是int)或numpy RandomState对象。
axis是选择抽取数据的行还是列。axis=0的时是抽取行,axis=1时是抽取列(也就是说axis=1时,在列中随机抽取n列,在axis=0时,在行中随机抽取n行)
np.random.sample(Your_index)
random.sample(a,n=3) a必须是列表
6.去重
df.duplicated()
7.
concat()
pd.concat([df1,df2,df3],axis=0,join='outer',join_axes=None,ignore_index=False,keys=None,levels=None,names=None,verify_integrity=False,copy=True)
keys:序列,默认无。使用传递的键作为最外层来构造层次索引。
levels:指定用作层次化索引各级别(内层索引)上的索引,如果设置keys的话。
names:list,默认无。生成的分层索引中的级别的名称。
join_axes: 结果中的index。
ignore_index:忽略重复值。
merge()
8
set_index和reset_index(concat后一定要用这个)
9
(1)df.sample(frac=1) 打乱操作,相当于列表中的random.shuffle()
df.sample(frac=1).reset_index(drop=True)
(2)sklearn中的shuffle方法
from sklearn.utils import shuffle
df = shuffle(df)
作者:阿昀姑娘在南方
链接:https://www.jianshu.com/p/4831797e04bb