感谢@everfigt
还是不懂colums怎么丢的。。。
t2的情况好理解,就是按true/false过滤,也就是说把空dataframe当成内部条件是没什么意义的吧?
但是我尝试直接用空dataframe也是有结果的:
In [11]: t2[pd.DataFrame()]
Out[11]:
a b
0 NaN NaN
1 NaN NaN
另外,下面两种空dataframe过滤为什么会得到不同的结果呢:
In [20]: t1.apply(myfunc, axis=1)
Series([], dtype: float64)
Out[20]:
Empty DataFrame
Columns: [a, b]
Index: []
In [21]: t1[t1.apply(myfunc, axis=1)] # 为啥这里的colums丢了
Series([], dtype: float64)
In [13]: t1[pd.DataFrame()] # 为啥直接失败了
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
in ()
----> 1 t1[pd.DataFrame()]
~/programs/venv36/lib/python3.6/site-packages/pandas/core/frame.py in __getitem__(self, key)
2133 re