![](/img/trans.png)
[英]In Python with Pandas, I have a function to change the index of DataFrame. But, it also changes the index of the original DataFrame
[英]I have missing data in my pandas dataframe. How can I tell python not to include it in a new dataframe?
我有一个文本文件mart_export.txt
充满了两种不同类型的键,看起来像这样
Gene stable ID RefSeq match transcript
ENSG00000243959
ENSG00000206698
ENSG00000265684
ENSG00000251990
ENSG00000241552
ENSG00000050767 NM_173465.4
如您所见,大多数右列都没有任何数据,但是我正尝试仅使用具有两列值的索引来构建新的pandas数据框。 到目前为止,这是我的脚本
#Put the biomart export in a pandas dataframe
mart = pd.read_csv("mart_export.txt", delimiter="\t")
#Create new list of records with Gene Stable Id and RefSeq numbers
d = {'Gene Stable ID': [], 'RefSeq ID': []}
for i in mart:
if mart['RefSeq match transcript'] != NaN:
d['Gene Stable ID'].append(mart['Gene stable ID'])
d['RefSeq ID'].append(mart['RefSeq match transcript'])
在Spyder中,第二列中空白的值标记为NaN,但是当我尝试在代码中使用此值时,我在python中收到一条错误,指出未定义NaN。 如何指定python的空白外观?
您可以通过拖放的行或列dropna()
大熊猫的方法, DataFrame
。
在您的情况下,它将是:
mart.dropna(axis="rows", inplace=True)
您可以删除包含列NaN
S,指定how
论证等,检查上面链接的文档。
要检测NaN
,可以使用pd.isna
或pd.isnull
。
但是, mart
是DataFrame,因此mart['RefSeq match transcript']
是一列。
mart['RefSeq match transcript'] == something
将返回序列。
因此,条件'if mart['RefSeq match transcript'] == something'
将始终返回错误,无论您尝试比较什么值。
您要么需要dropna
,如其他答案所示,要么过滤掉nan
,如下所示:
mart_noNaN = mart[~mart['RefSeq match transcript'].isna()]
注意`mart前面的'~'
否定。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.