假设我有一个包含100k行和一列name
的DataFrame
。我想要尽可能高效地将这个名字拆分成名字和姓氏。我的当前方法是:
def splitName(name):
return pandas.Series(name.split()[0:2])
df[['first', 'last']] = df.apply(lambda x: splitName(x['name']), axis=1)
很不幸,DataFrame.apply
的速度非常慢。有没有什么方法可以使这个字符串操作的速度接近于numpy
操作呢?
谢谢!
series.str.split()
进行操作。相关文档在这里:http://pandas.pydata.org/pandas-docs/stable/basics.html#vectorized-string-methods - Thomas K