作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个在 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/
我正在使用 cProfile 来分析我整个应用程序的主要功能。它工作得很好,除了一些正在分析并显示在输出中的第 3 方库。这在读取输出时并不总是可取的。 我的问题是,我该如何限制它? document
我是一名优秀的程序员,十分优秀!