主要是pandas中的操作,需要一定pandas基础:
1 提取某列数据中包含':'的,返回ture,false,nan
如:[data[label].str.contains(':')]
2 dataframe 用astype(str)实现类型转换
3 实现某种分割提取可用 pandas str的内置方法
如df.str.split(':')
4 df.iloc[0:10]实现按行索引
5 df.groupby('product')['product'].count()
统计'product'每类有出现多少次
6 通过函数筛选label满足s1<label<s2条件的dataframe条目
data[data[label].map(lambda x: True if s1<= str(x) <= s2 False)]
7 通过构建mask选出满足条件的条目
mask=list(map(lambda x, y: True if x ==1 and y != 1 else False,[1,2,3],[3,2,1]))
[True, False, False]
8 from collections import Counter
c = Counter('abcasd') (也可以加.tiems())返回Counter({'a': 2, 'c': 1, 'b': 1, 's': 1, 'd': 1})
9 df['key1'].unique().reset_index(drop=True)
统计该项中有多少不同项
10 data=df[[label]].drop_duplicates([label])
提取一列中不同的项(可作为索引)
11 df.fillna(-1,inplace=True)
填充并覆盖原来的df(默认为创建新的),如果使用inplace=Ture则返回值为NoneType
12 保存数据为某种格式
np.savetxt('xgb_submission.csv',np.c_[range(1,len(tests)+1),preds],delimiter=',',header='ImageId,Label',comments='',fmt='%d')
13 得到某列的值
.get_values() (或者.values)
14 groupby重点(nunique()很特殊)
1)groupby([label1,label2])[label3].nunique()#.reset_index
以label1,label2作为索引(1为单,2为多),label1和label2存在,若加上reset_index后有序号索引(1,2多)
2)groupby([label1,label2],as_index=False)[label3].nunique()
(label1,label2)都不存在,只有索引号和计数
3)groupby()和sum()结合,
groupby([label1,label2],as_index=False)[label3].sum()
不加as_index效果同nuique,加上as_index(或者reset_index())则自动有序号
---------------------
原文:https://blog.csdn.net/sinat_36256646/article/details/80530415