|
58 | 58 | import pandas.core.common as com
|
59 | 59 | from pandas.core.computation.pytables import PyTablesExpr, maybe_expression
|
60 | 60 | from pandas.core.index import ensure_index
|
61 |
| -from pandas.core.internals import BlockManager, _block_shape, make_block |
62 | 61 |
|
63 | 62 | from pandas.io.common import _stringify_path
|
64 | 63 | from pandas.io.formats.printing import adjoin, pprint_thing
|
@@ -2392,7 +2391,7 @@ def set_atom_categorical(self, block, items, info=None):
|
2392 | 2391 | # write the codes; must be in a block shape
|
2393 | 2392 | self.ordered = values.ordered
|
2394 | 2393 | self.typ = self.get_atom_data(block, kind=codes.dtype.name)
|
2395 |
| - self.set_data(_block_shape(codes)) |
| 2394 | + self.set_data(codes) |
2396 | 2395 |
|
2397 | 2396 | # write the categories
|
2398 | 2397 | self.meta = "category"
|
@@ -3186,17 +3185,23 @@ def read(
|
3186 | 3185 | axes.append(ax)
|
3187 | 3186 |
|
3188 | 3187 | items = axes[0]
|
3189 |
| - blocks = [] |
| 3188 | + dfs = [] |
| 3189 | + |
3190 | 3190 | for i in range(self.nblocks):
|
3191 | 3191 |
|
3192 | 3192 | blk_items = self.read_index(f"block{i}_items")
|
3193 | 3193 | values = self.read_array(f"block{i}_values", start=_start, stop=_stop)
|
3194 |
| - blk = make_block( |
3195 |
| - values, placement=items.get_indexer(blk_items), ndim=len(axes) |
3196 |
| - ) |
3197 |
| - blocks.append(blk) |
3198 | 3194 |
|
3199 |
| - return self.obj_type(BlockManager(blocks, axes)) |
| 3195 | + columns = items[items.get_indexer(blk_items)] |
| 3196 | + df = DataFrame(values.T, columns=columns, index=axes[1]) |
| 3197 | + dfs.append(df) |
| 3198 | + |
| 3199 | + if len(dfs) > 0: |
| 3200 | + out = concat(dfs, axis=1) |
| 3201 | + out = out.reindex(columns=items, copy=False) |
| 3202 | + return out |
| 3203 | + |
| 3204 | + return DataFrame(columns=axes[0], index=axes[1]) |
3200 | 3205 |
|
3201 | 3206 | def write(self, obj, **kwargs):
|
3202 | 3207 | super().write(obj, **kwargs)
|
@@ -4432,9 +4437,15 @@ def read(
|
4432 | 4437 | if values.ndim == 1 and isinstance(values, np.ndarray):
|
4433 | 4438 | values = values.reshape((1, values.shape[0]))
|
4434 | 4439 |
|
4435 |
| - block = make_block(values, placement=np.arange(len(cols_)), ndim=2) |
4436 |
| - mgr = BlockManager([block], [cols_, index_]) |
4437 |
| - frames.append(DataFrame(mgr)) |
| 4440 | + if isinstance(values, np.ndarray): |
| 4441 | + df = DataFrame(values.T, columns=cols_, index=index_) |
| 4442 | + elif isinstance(values, Index): |
| 4443 | + df = DataFrame(values, columns=cols_, index=index_) |
| 4444 | + else: |
| 4445 | + # Categorical |
| 4446 | + df = DataFrame([values], columns=cols_, index=index_) |
| 4447 | + assert (df.dtypes == values.dtype).all(), (df.dtypes, values.dtype) |
| 4448 | + frames.append(df) |
4438 | 4449 |
|
4439 | 4450 | if len(frames) == 1:
|
4440 | 4451 | df = frames[0]
|
|
0 commit comments