Construct an index from sequences of data. A single sequence returns an Index. Many sequences returns a MultiIndex. Parameters ---------- sequences : sequence of sequences names : sequence of str Returns ------- index : Index or MultiIndex Examples
(sequences, names=None)
| 7873 | |
| 7874 | |
| 7875 | def ensure_index_from_sequences(sequences, names=None) -> Index: |
| 7876 | """ |
| 7877 | Construct an index from sequences of data. |
| 7878 | |
| 7879 | A single sequence returns an Index. Many sequences returns a |
| 7880 | MultiIndex. |
| 7881 | |
| 7882 | Parameters |
| 7883 | ---------- |
| 7884 | sequences : sequence of sequences |
| 7885 | names : sequence of str |
| 7886 | |
| 7887 | Returns |
| 7888 | ------- |
| 7889 | index : Index or MultiIndex |
| 7890 | |
| 7891 | Examples |
| 7892 | -------- |
| 7893 | >>> ensure_index_from_sequences([[1, 2, 4]], names=["name"]) |
| 7894 | Index([1, 2, 4], dtype='int64', name='name') |
| 7895 | |
| 7896 | >>> ensure_index_from_sequences([["a", "a"], ["a", "b"]], names=["L1", "L2"]) |
| 7897 | MultiIndex([('a', 'a'), |
| 7898 | ('a', 'b')], |
| 7899 | names=['L1', 'L2']) |
| 7900 | |
| 7901 | See Also |
| 7902 | -------- |
| 7903 | ensure_index |
| 7904 | """ |
| 7905 | from pandas.core.indexes.api import default_index |
| 7906 | from pandas.core.indexes.multi import MultiIndex |
| 7907 | |
| 7908 | if len(sequences) == 0: |
| 7909 | return default_index(0) |
| 7910 | elif len(sequences) == 1: |
| 7911 | if names is not None: |
| 7912 | names = names[0] |
| 7913 | return Index(maybe_sequence_to_range(sequences[0]), name=names) |
| 7914 | else: |
| 7915 | # TODO: Apply maybe_sequence_to_range to sequences? |
| 7916 | return MultiIndex.from_arrays(sequences, names=names) |
| 7917 | |
| 7918 | |
| 7919 | def ensure_index(index_like: Axes, copy: bool = False) -> Index: |