MCPcopy Create free account
hub / github.com/apache/arrow / table_to_dataframe

Function table_to_dataframe

python/pyarrow/pandas_compat.py:799–858  ·  view source on GitHub ↗
(
    options, table, categories=None, ignore_metadata=False, types_mapper=None
)

Source from the content-addressed store, hash-verified

797
798
799def table_to_dataframe(
800 options, table, categories=None, ignore_metadata=False, types_mapper=None
801):
802 all_columns = []
803 column_indexes = []
804 attributes = {}
805 pandas_metadata = table.schema.pandas_metadata
806
807 if not ignore_metadata and pandas_metadata is not None:
808 all_columns = pandas_metadata['columns']
809 column_indexes = pandas_metadata.get('column_indexes', [])
810 attributes = pandas_metadata.get('attributes', {})
811 index_descriptors = pandas_metadata['index_columns']
812 table = _add_any_metadata(table, pandas_metadata)
813 table, index = _reconstruct_index(table, index_descriptors,
814 all_columns, types_mapper)
815 ext_columns_dtypes = _get_extension_dtypes(
816 table, all_columns, types_mapper, options, categories)
817 else:
818 index = _pandas_api.pd.RangeIndex(table.num_rows)
819 ext_columns_dtypes = _get_extension_dtypes(
820 table, [], types_mapper, options, categories
821 )
822
823 _check_data_column_metadata_consistency(all_columns)
824 columns = _deserialize_column_index(table, all_columns, column_indexes)
825
826 column_names = table.column_names
827 result = pa.lib.table_to_blocks(options, table, categories,
828 list(ext_columns_dtypes.keys()))
829 if _pandas_api.is_ge_v3():
830 from pandas.api.internals import create_dataframe_from_blocks
831
832 blocks = [
833 _reconstruct_block(
834 item, column_names, ext_columns_dtypes, return_block=False)
835 for item in result
836 ]
837 df = create_dataframe_from_blocks(blocks, index=index, columns=columns)
838 df.attrs = attributes
839
840 return df
841 else:
842 from pandas.core.internals import BlockManager
843 from pandas import DataFrame
844
845 blocks = [
846 _reconstruct_block(item, column_names, ext_columns_dtypes)
847 for item in result
848 ]
849 axes = [columns, index]
850 mgr = BlockManager(blocks, axes)
851 if _pandas_api.is_ge_v21():
852 df = DataFrame._from_mgr(mgr, mgr.axes)
853 else:
854 df = DataFrame(mgr)
855
856 df.attrs = attributes

Callers

nothing calls this directly

Calls 9

_add_any_metadataFunction · 0.85
_reconstruct_indexFunction · 0.85
_get_extension_dtypesFunction · 0.85
listFunction · 0.85
_reconstruct_blockFunction · 0.85
getMethod · 0.45
keysMethod · 0.45

Tested by

no test coverage detected