29 lines
929 B
Python
29 lines
929 B
Python
|
import numpy as np
|
||
|
import pytest
|
||
|
|
||
|
import pandas as pd
|
||
|
import pandas._testing as tm
|
||
|
|
||
|
|
||
|
class TestConvertDtypes:
|
||
|
@pytest.mark.parametrize(
|
||
|
"convert_integer, expected", [(False, np.dtype("int32")), (True, "Int32")]
|
||
|
)
|
||
|
def test_convert_dtypes(self, convert_integer, expected):
|
||
|
# Specific types are tested in tests/series/test_dtypes.py
|
||
|
# Just check that it works for DataFrame here
|
||
|
df = pd.DataFrame(
|
||
|
{
|
||
|
"a": pd.Series([1, 2, 3], dtype=np.dtype("int32")),
|
||
|
"b": pd.Series(["x", "y", "z"], dtype=np.dtype("O")),
|
||
|
}
|
||
|
)
|
||
|
result = df.convert_dtypes(True, True, convert_integer, False)
|
||
|
expected = pd.DataFrame(
|
||
|
{
|
||
|
"a": pd.Series([1, 2, 3], dtype=expected),
|
||
|
"b": pd.Series(["x", "y", "z"], dtype="string"),
|
||
|
}
|
||
|
)
|
||
|
tm.assert_frame_equal(result, expected)
|