1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
| from datetime import datetime
|
| from pandas import DataFrame
| import pandas._testing as tm
|
|
| class TestInferObjects:
| def test_infer_objects(self):
| # GH#11221
| df = DataFrame(
| {
| "a": ["a", 1, 2, 3],
| "b": ["b", 2.0, 3.0, 4.1],
| "c": [
| "c",
| datetime(2016, 1, 1),
| datetime(2016, 1, 2),
| datetime(2016, 1, 3),
| ],
| "d": [1, 2, 3, "d"],
| },
| columns=["a", "b", "c", "d"],
| )
| df = df.iloc[1:].infer_objects()
|
| assert df["a"].dtype == "int64"
| assert df["b"].dtype == "float64"
| assert df["c"].dtype == "M8[ns]"
| assert df["d"].dtype == "object"
|
| expected = DataFrame(
| {
| "a": [1, 2, 3],
| "b": [2.0, 3.0, 4.1],
| "c": [datetime(2016, 1, 1), datetime(2016, 1, 2), datetime(2016, 1, 3)],
| "d": [2, 3, "d"],
| },
| columns=["a", "b", "c", "d"],
| )
| # reconstruct frame to verify inference is same
| result = df.reset_index(drop=True)
| tm.assert_frame_equal(result, expected)
|
|