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

Function table_to_dataframe

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

Source from the content-addressed store, hash-verified

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