gpt4 book ai didi

python - pandas系列上的短路numpy逻辑_and

转载 作者:行者123 更新时间:2023-12-01 09:26:46 25 4
gpt4 key购买 nike

我创建了一个在 pandas 数据框中使用的掩码:

 mask = np.logical_and(
csv_df['time'].map(operator.attrgetter('hour')).isin(
hours_set),
csv_df['time'].map(lambda x: x.weekday_name[:3]).isin(
days_set))
csv_df = csv_df.loc[mask, :]

事实证明,两个isin系列的计算速度相当慢。上面的方法计算两个系列,然后将它们相加 - 是否有一种(惯用的)方法来短路每个元素,因为第一个系列大多是假的,所以我们不需要计算其他系列的元素?

最佳答案

一个想法是:

mask = csv_df['time'].dt.hour.isin(hours_set) & 
csv_df['time'].dt.strftime('%a').isin(days_set)

如果大多数值不匹配,另一个想法是过滤第一个,然后过滤第二个:

csv_df1 = csv_df.loc[csv_df['time'].dt.strftime('%a').isin(days_set)]
csv_df2 = csv_df1.loc[csv_df1['time'].dt.hour.isin(hours_set)]

关于python - pandas系列上的短路numpy逻辑_and,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50325718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com