为什么在串联Pandas中的列时`values'的执行速度更快

时间:2019-07-18 21:33:59

标签: python pandas

我试图根据同一行的列子集的连接来创建新列。由于涉及大数据集,因此我尝试了几种方法。我注意到在values中使用join的速度大约是不使用df = pd.DataFrame({'country': {0: 'United States', 1: 'Syria', 2: 'Russia', 3: 'China', 4: 'Philippines', 5: 'Russia', 6: 'North Korea', 7: 'Philippines', 8: 'Finland', 9: 'Kenya'}, 'car': {0: 'Hummer', 1: 'GMC', 2: 'Chevrolet', 3: 'Plymouth', 4: 'Smart', 5: 'Volkswagen', 6: 'Jeep', 7: 'Toyota', 8: 'Ford', 9: 'Mercedes-Benz'}}) 的速度的2-3倍(请参见下文)。关于为什么以及何时如此的任何想法吗?

values
  • %timeit df.apply(lambda c: ''.join(c.astype(str)), axis=1)

1.29 ms ± 23.2 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

values

  • 使用%timeit df.apply(lambda c: ''.join(c.values.astype(str)), axis=1)

646 µs ± 16.3 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

{{1}}

0 个答案:

没有答案