如何在pandas字典

时间:2017-08-12 18:50:26

标签: python pandas

我只是在迭代一个简单的pandas数据框,看起来像这样:

   229041189 229041196 229041197 229041200 229041211 229041212 229041216  
0        C-T       T-C       C-T       C-T       G-T       G-T       C-T  
1        C-T       T-C       C-T       C-T       NaN       NaN       C-T  
2        C-T       NaN       C-T       C-T       NaN       NaN       C-T  
3        C-T       T-C       C-T       C-T       NaN       NaN       C-T

在一个if循环中,我试图只查看那些不是NaN的值,但它们仍然全部通过我的条件,我不知道为什么会这样。

我的循环是这样的:

for i in column:
    if i != 'NaN':
        # do something

1 个答案:

答案 0 :(得分:1)

首先检查NaN(缺失值)可以使用pandas.notnull

if pd.notnull(i)

我认为您需要stack通过重塑来创建Series - NaN被删除:

print (df.stack())
0  229041189    C-T
   229041196    T-C
   229041197    C-T
   229041200    C-T
   229041211    G-T
   229041212    G-T
   229041216    C-T
1  229041189    C-T
   229041196    T-C
   229041197    C-T
   229041200    C-T
   229041216    C-T
2  229041189    C-T
   229041197    C-T
   229041200    C-T
   229041216    C-T
3  229041189    C-T
   229041196    T-C
   229041197    C-T
   229041200    C-T
   229041216    C-T
dtype: object

然后value_counts

a = df.stack().value_counts().rename_axis('val').reset_index(name='count')
print (a)
   val  count
0  C-T     16
1  T-C      3
2  G-T      2