[python]pandas学习
2019-02-26 本文已影响0人
happyxhz
参考资料:
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