熊猫 - 链接多个.loc方法。

时间:2018-05-03 15:22:46

标签: python pandas

在pandas中,有没有办法在单个.loc调用中将标签索引和布尔掩码索引结合起来?

目前我有这个:

df.loc[start_date:end_date][[np.is_busday(x, holidays=dd.all_holidays) for x in df.index]]

哪个工作正常,但我很好奇是否有更好的选择。谢谢。

2 个答案:

答案 0 :(得分:0)

查询可能更有效,因为它将被矢量化,但这一切都取决于您首先过滤掉的数据量。

{{1}}

旁注,您确定您的布尔掩码有效吗? df和使用掩码索引的数据帧(由loc返回)可能不再具有相同的长度。

答案 1 :(得分:0)

您可以将索引转换为系列,然后使用pd.Series.betweenpd.Series.apply

s = pd.Series(df.index)

df.loc[s.between(start_date, end_date) & \
       s.apply(np.is_busday, holidays=dd.all_holidays)]