Giả sử tôi có một DataFrame
với 100 nghìn hàng và cột name
. Tôi muốn chia tên này thành họ và tên hiệu quả nhất có thể. Phương pháp hiện tại của tôi là,Áp dụng nhanh các hoạt động chuỗi trong gấu trúc DataFrame
def splitName(name):
return pandas.Series(name.split()[0:2])
df[['first', 'last']] = df.apply(lambda x: splitName(x['name']), axis=1)
Thật không may, DataFrame.apply
thực sự rất chậm. Có bất cứ điều gì tôi có thể làm để làm cho hoạt động chuỗi này gần như nhanh như hoạt động numpy
?
Cảm ơn!
Nếu bạn có gấu trúc 0.8.1 trở lên, có vẻ như bạn sẽ có thể làm 'series.str.split()'. Tài liệu tại đây: http://pandas.pydata.org/pandas-docs/stable/basics.html#vectorized-string-methods –