我有一个熊猫系列,包含0到1之间的数字。如果数字是<;0.5,我需要将它与10相乘,否则将它与20相乘。你知道吗
我可以这样做,把所有的东西乘以20。你知道吗
outcome = 20 * my_series
我可以迭代整个系列,一个接一个这样做:
for i, v in my_series.iteritems():
if v >= 0.5:
mul = 20
else:
mul = 10
outcome.append(mul * my_series[i])
但是第二种方法要慢得多,我想知道是否有更好的方法来处理这个案子。你知道吗
Tags:
我刚接触熊猫,所以这可能不是最有效的答案,但我会把它扔出去,因为它似乎有效:
在使用不同的版本时,我还提出了以下内容,但我假设上面的内容更有效,因为它是内置的。你知道吗
就地版本:
联机版本:
更新
只是出于好奇,我尝试了上面的快速timeit测试,结果让我有些惊讶:
除非我做错了什么(有人吗?),看来至少在这个例子中,自矢量化的版本要快一点。你知道吗
相关问题 更多 >
编程相关推荐