Uploaded image for project: 'Apache Arrow'
  1. Apache Arrow
  2. ARROW-16898

[Python] TypeError from `Table.from_pandas(df)` when df using non-str index name

    XMLWordPrintableJSON

Details

    Description

      When do Table.from_pandas(df), current code didn't convert index name to str (it did convert column name to str), so that it will fail if non-str index name in df.

      Code to reproduce:

      import pandas as pd
      import pyarrow as pa
      
      df = pd.DataFrame({0: [1, 2, 3], 1: [4, 5, 6]})
      df = df.set_index(0)
      pa.Table.from_pandas(df) 

      Error:

       ---------------------------------------------------------------------------
      TypeError                                 Traceback (most recent call last)
      Input In [3], in <module>
            4 df = pd.DataFrame({0: [1, 2, 3], 1: [4, 5, 6]})
            5 df = df.set_index(0)
      ----> 6 pa.Table.from_pandas(df)
      
      File ~/src/mlpsandboxrt/venv/lib/python3.8/site-packages/pyarrow/table.pxi:1394, in pyarrow.lib.Table.from_pandas()
      
      File ~/src/mlpsandboxrt/venv/lib/python3.8/site-packages/pyarrow/pandas_compat.py:610, in dataframe_to_arrays(df, schema, preserve_index, nthreads, columns, safe)
          608     for name, type_ in zip(all_names, types):
          609         name = name if name is not None else 'None'
      --> 610         fields.append(pa.field(name, type_))
          611     schema = pa.schema(fields)
          613 pandas_metadata = construct_metadata(df, column_names, index_columns,
          614                                      index_descriptors, preserve_index,
          615                                      types)
      
      File ~/src/mlpsandboxrt/venv/lib/python3.8/site-packages/pyarrow/types.pxi:1698, in pyarrow.lib.field()
      
      File stringsource:15, in string.from_py.__pyx_convert_string_from_py_std__in_string()
      
      TypeError: expected bytes, int found

       

      Attachments

        Issue Links

          Activity

            People

              hflhmartin Martin Liu
              hflhmartin Martin Liu
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 1h 10m
                  1h 10m