pydata/pandas — pull request #2871 by jreback (2013-02-14 03:35:34+00:00)
Title: ENH: implment Block splitting to avoid upcasts where possible (closes #2794)

- provides an implementation of IntBlock splitting that can avoid upcasting (to float) these blocks if a is boolean condition does not affect the column

```
In [6]: df = pd.DataFrame(1,columns=['a','b'],index=range(3))

In [7]: df.ix[1,'b'] = 0

In [8]: df
Out[8]:
a b
0 1 1
1 1 0
2 1 1

In [9]: df.dtypes
Out[9]:
a int64
b int64
Dtype: object

In [10]: df[df>0].dtypes
Out[10]:
a int64
b float64
Dtype: object

In [11]: df[df>0]
Out[11]:
a b
0 1 1
1 1 NaN
2 1 1
```