【发布时间】:2021-11-21 14:52:45
【问题描述】:
我正在编写一个从 pandas DataFrame 中选择行子集的函数。
函数长这样,
def get_predictions(df: pd.DataFrame, subset: str) -> pd.DataFrame:
return df['properties', 'prediction'].loc[subset]
我希望这个函数能够处理我想要选择 DataFrame 中所有行的情况。一种解决方案是让子集参数默认为无,如果子集参数设置为无,则返回整个 DataFrame。
def get_predictions(df: pd.DataFrame, subset: str) -> pd.DataFrame:
if subset is None:
return df['properties', 'prediction']
else:
return df['properties', 'prediction'].loc[subset]
我不喜欢这个解决方案,因为我复制了很多代码。有没有更好的解决方案,不涉及重复。具体来说,是否有一个对象可以传递给 .loc[],它会返回 DataFrame 中的所有行?
这是我正在寻找的理想解决方案,
def get_predictions(df: pd.DataFrame, subset=MysteryObject) -> pd.DataFrame:
return df['properties', 'prediction'].loc[MysteryObject]
是否有MysteryObject 可以实现这种期望的行为?
【问题讨论】:
标签: python pandas dataframe slice