我需要创建一个pd.DataFrame带有多重索引的。第一个索引级别是一个简单的范围,从1...n. 第二级是日期时间索引。所有列都包含floats. 这是我的示例n=2。
from datetime import date
import pandas as pd
from hypothesis import given
from hypothesis import strategies as st
from hypothesis.extra.pandas import columns, data_frames, indexes
@given(
df1=data_frames(
columns=columns(
["asset1", "asset2", "asset3", "cash_asset"],
elements=st.floats(allow_nan=False, allow_infinity=False),
),
index=indexes(
elements=st.dates(
date.fromisoformat("2000-01-01"), date.fromisoformat("2020-12-31")
),
min_size=10,
unique=True,
).map(sorted),
),
df2=data_frames(
columns=columns(
["asset1", "asset2", "asset3", "cash_asset"],
elements=st.floats(allow_nan=False, allow_infinity=False),
),
index=indexes(
elements=st.dates(
date.fromisoformat("2000-01-01"), date.fromisoformat("2020-12-31")
),
min_size=10,
unique=True,
).map(sorted),
),
)
def test_index_level(df1, df2):
df = pd.concat([df1, df2], keys=["df1", "df2"])
assert df.index.nlevels == 2
我想知道如何使用hypothesis库直接创建多重索引?很明显,我无法像我的玩具示例中那样手动定义df1、df2等。
另一个限制是level 2所有出现的索引都必须相同level 1。
www说
相关分类