我试图根据同一行的列子集的连接来创建新列。由于涉及大数据集,因此我尝试了几种方法。我注意到在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}}