天池比赛数据处理常用操作(最常用)

主要是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())则自动有序号
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值