pandas

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)

你可能感兴趣的:(pandas)