如何传递一个空的熊猫查询

时间:2019-05-01 09:10:12

标签: python pandas

为了改进模型,我将几个.query()传递给熊猫数据框。在for循环中,我也将有一个空查询,但在文档中未找到任何内容。

我尝试过:

temp_df.query(None)
temp_df.query()

但这不起作用。还有其他想法吗?

谢谢

4 个答案:

答案 0 :(得分:1)

使用与DataFrame长度相同的布尔数组:

In [2]: df = pd.DataFrame(np.arange(16).reshape(4, 4), columns=list('ABCD'))

In [3]: trivially_true = np.repeat(True, len(df))

In [4]: trivially_false = np.repeat(False, len(df))

In [5]: df
Out[5]: 
    A   B   C   D
0   0   1   2   3
1   4   5   6   7
2   8   9  10  11
3  12  13  14  15

In [6]: df.query('@trivially_true')
Out[6]: 
    A   B   C   D
0   0   1   2   3
1   4   5   6   7
2   8   9  10  11
3  12  13  14  15

In [7]: df.query('@trivially_false')
Out[7]: 
Empty DataFrame
Columns: [A, B, C, D]
Index: []

答案 1 :(得分:1)

您可以为此使用'index'关键字:

temp_df.query('index == index or index != index')

这将使您同时获得数据框的空索引和非空索引,即整个数据框。

答案 2 :(得分:0)

最好能使用自动取款机,但仍然不令人满意:

col = temp_df.columns[0]
temp_df.query(f"{col}.isnull() or {col}.notnull()")

答案 3 :(得分:0)

如果你的 DataFrame 不是 MultiIndexed,你可以使用

df.query('tuple()')