为了改进模型,我将几个.query()传递给熊猫数据框。在for循环中,我也将有一个空查询,但在文档中未找到任何内容。
我尝试过:
temp_df.query(None)
temp_df.query()
但这不起作用。还有其他想法吗?
谢谢
答案 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()')