实用小公举

[python]pandas学习

2019-02-26  本文已影响0人  happyxhz

参考资料:

pandas用法大全

2019-02-26

目标:

将1000G部分过滤,大于0.01部分全部删除,但是有些没有收录的snp会标注为‘.’

遇到的问题:

直接使用下面的命令,则无法过滤,原因出在:该列所有的值格式为str

df.ix[df['1000G_ALL'] < 0.01]

解决的代码:

写个转化的函数,然后用apply命令

df['1000G_ALL'] = df['1000G_ALL'].apply(lambda x:kitty(x))
df.ix[df['1000G_ALL']<0.01]

可以查看一下df['1000G_ALL'].apply的帮助文档,该命令可以传入参数,解决了之前map的缺陷,eg:

series.apply(subtract_custom_value, args=(5,))
series.apply(add_custom_values, june=30, july=20, august=25)

参考资料:pandas数据类型转换

目标:

筛选有害位点

解决代码

#滤去不带red字符的列,缩小范围
df.filter(like='red')
#或指定列过滤
df.filter(items=['SIFT_pred','Polyphen2_HDIV_pred','Polyphen2_HVAR_pred','MutationTaster_pred','CADD_phred'])

目标:

统计某列中'D'的个数,'F'的个数

#取某列的level
df['class'].unique()
#统计个数
from collections import Counter
Counter(df['class'])

2019-03-26

目标:滤去某列中带有某字段的列

参考: pandas过滤包含特定字符串的行

解决方法:

import re
df[~df.Genotype.str.contains(r'^del|ins')]

其中~代表取反,相当于not

上一篇 下一篇

猜你喜欢

热点阅读