|
import numpy as np |
|
import pytest |
|
|
|
from pandas import ( |
|
DataFrame, |
|
Index, |
|
NaT, |
|
date_range, |
|
) |
|
|
|
|
|
@pytest.fixture |
|
def datetime_frame() -> DataFrame: |
|
""" |
|
Fixture for DataFrame of floats with DatetimeIndex |
|
|
|
Columns are ['A', 'B', 'C', 'D'] |
|
""" |
|
return DataFrame( |
|
np.random.default_rng(2).standard_normal((100, 4)), |
|
columns=Index(list("ABCD"), dtype=object), |
|
index=date_range("2000-01-01", periods=100, freq="B"), |
|
) |
|
|
|
|
|
@pytest.fixture |
|
def float_string_frame(): |
|
""" |
|
Fixture for DataFrame of floats and strings with index of unique strings |
|
|
|
Columns are ['A', 'B', 'C', 'D', 'foo']. |
|
""" |
|
df = DataFrame( |
|
np.random.default_rng(2).standard_normal((30, 4)), |
|
index=Index([f"foo_{i}" for i in range(30)], dtype=object), |
|
columns=Index(list("ABCD"), dtype=object), |
|
) |
|
df["foo"] = "bar" |
|
return df |
|
|
|
|
|
@pytest.fixture |
|
def mixed_float_frame(): |
|
""" |
|
Fixture for DataFrame of different float types with index of unique strings |
|
|
|
Columns are ['A', 'B', 'C', 'D']. |
|
""" |
|
df = DataFrame( |
|
{ |
|
col: np.random.default_rng(2).random(30, dtype=dtype) |
|
for col, dtype in zip( |
|
list("ABCD"), ["float32", "float32", "float32", "float64"] |
|
) |
|
}, |
|
index=Index([f"foo_{i}" for i in range(30)], dtype=object), |
|
) |
|
|
|
df["C"] = df["C"].astype("float16") |
|
return df |
|
|
|
|
|
@pytest.fixture |
|
def mixed_int_frame(): |
|
""" |
|
Fixture for DataFrame of different int types with index of unique strings |
|
|
|
Columns are ['A', 'B', 'C', 'D']. |
|
""" |
|
return DataFrame( |
|
{ |
|
col: np.ones(30, dtype=dtype) |
|
for col, dtype in zip(list("ABCD"), ["int32", "uint64", "uint8", "int64"]) |
|
}, |
|
index=Index([f"foo_{i}" for i in range(30)], dtype=object), |
|
) |
|
|
|
|
|
@pytest.fixture |
|
def timezone_frame(): |
|
""" |
|
Fixture for DataFrame of date_range Series with different time zones |
|
|
|
Columns are ['A', 'B', 'C']; some entries are missing |
|
|
|
A B C |
|
0 2013-01-01 2013-01-01 00:00:00-05:00 2013-01-01 00:00:00+01:00 |
|
1 2013-01-02 NaT NaT |
|
2 2013-01-03 2013-01-03 00:00:00-05:00 2013-01-03 00:00:00+01:00 |
|
""" |
|
df = DataFrame( |
|
{ |
|
"A": date_range("20130101", periods=3), |
|
"B": date_range("20130101", periods=3, tz="US/Eastern"), |
|
"C": date_range("20130101", periods=3, tz="CET"), |
|
} |
|
) |
|
df.iloc[1, 1] = NaT |
|
df.iloc[1, 2] = NaT |
|
return df |
|
|