diff --git a/cpp/src/arrow/python/pandas_to_arrow.cc b/cpp/src/arrow/python/pandas_to_arrow.cc index b6cc16b4179..408aef3adc4 100644 --- a/cpp/src/arrow/python/pandas_to_arrow.cc +++ b/cpp/src/arrow/python/pandas_to_arrow.cc @@ -552,7 +552,7 @@ Status PandasConverter::ConvertDates() { RETURN_NOT_OK(builder.AppendNull()); } else { std::stringstream ss; - ss << "Error converting from Python objects to " << type_->ToString() << ": "; + ss << "Error converting from Python objects to Date: "; RETURN_NOT_OK(InvalidConversion(obj, "datetime.date", &ss)); return Status::Invalid(ss.str()); } @@ -608,7 +608,7 @@ Status PandasConverter::ConvertDecimals() { RETURN_NOT_OK(builder.AppendNull()); } else { std::stringstream ss; - ss << "Error converting from Python objects to " << type_->ToString() << ": "; + ss << "Error converting from Python objects to Decimal: "; RETURN_NOT_OK(InvalidConversion(object, "decimal.Decimal", &ss)); return Status::Invalid(ss.str()); } @@ -636,7 +636,7 @@ Status PandasConverter::ConvertTimes() { RETURN_NOT_OK(builder.AppendNull()); } else { std::stringstream ss; - ss << "Error converting from Python objects to " << type_->ToString() << ": "; + ss << "Error converting from Python objects to Time: "; RETURN_NOT_OK(InvalidConversion(obj, "datetime.time", &ss)); return Status::Invalid(ss.str()); } @@ -704,7 +704,7 @@ Status PandasConverter::ConvertObjectFloats() { RETURN_NOT_OK(builder.Append(val)); } else { std::stringstream ss; - ss << "Error converting from Python objects to " << type_->ToString() << ": "; + ss << "Error converting from Python objects to Double: "; RETURN_NOT_OK(InvalidConversion(obj, "float", &ss)); return Status::Invalid(ss.str()); } @@ -739,7 +739,7 @@ Status PandasConverter::ConvertObjectIntegers() { RETURN_NOT_OK(builder.Append(val)); } else { std::stringstream ss; - ss << "Error converting from Python objects to " << type_->ToString() << ": "; + ss << "Error converting from Python objects to Int64: "; RETURN_NOT_OK(InvalidConversion(obj, "integer", &ss)); return Status::Invalid(ss.str()); } @@ -802,7 +802,7 @@ Status PandasConverter::ConvertBooleans() { BitUtil::SetBit(null_bitmap_data_, i); } else { std::stringstream ss; - ss << "Error converting from Python objects to " << type_->ToString() << ": "; + ss << "Error converting from Python objects to Boolean: "; RETURN_NOT_OK(InvalidConversion(obj, "bool", &ss)); return Status::Invalid(ss.str()); } diff --git a/python/pyarrow/tests/test_convert_pandas.py b/python/pyarrow/tests/test_convert_pandas.py index c2631842278..6e5e8e88ced 100644 --- a/python/pyarrow/tests/test_convert_pandas.py +++ b/python/pyarrow/tests/test_convert_pandas.py @@ -619,6 +619,10 @@ def test_mixed_types_fails(self): with self.assertRaises(pa.ArrowException): pa.Table.from_pandas(data) + data = pd.DataFrame({'a': [1, True]}) + with self.assertRaises(pa.ArrowException): + pa.Table.from_pandas(data) + def test_strided_data_import(self): cases = []