如何将SQL样式“非空”合并到read_hdf的where语句中

时间:2016-01-29 17:27:59

标签: python sql pandas dataframe hdf

我正在试图弄清楚如何阻止选择中的空响应,并且想知道如何制定where语句以使其产生正确的选择。例如,假设我有以下代码:

df = pd.DataFrame({'A' : ['foo','foo','bar','bar','baz'],
                    'B' : [1,2,1,2,np.nan], 
                    'C' : np.random.randn(5) })

df.to_hdf('test.h5', 'df', mode='w', format='table', data_columns=True)

pd.read_hdf('test.h5', 'df')

     A   B         C
0  foo   1 -0.046065
1  foo   2 -0.987685
2  bar   1 -0.110967
3  bar   2 -1.989150
4  baz NaN  0.126864

我基本上想要相当于说:

    pd.read_hdf('test.h5', 'df', where='B is not null')

我该怎么做呢?

谢谢!

2 个答案:

答案 0 :(得分:0)

看起来它不能直接完成,这是数字列的一个丑陋的解决方法:

{1 4 6 10 0 0 0 7 0 8 0 0 2 5 0 0 3 9 0 0 0 }

答案 1 :(得分:0)

我认为可以这样做:

pd.read_hdf('test.h5', 'df', where='B == B')