【问题标题】:Quickly applying string operations in a pandas DataFrame在 pandas DataFrame 中快速应用字符串操作
【发布时间】:2012-10-01 12:28:11
【问题描述】:

假设我有一个 DataFrame 有 100k 行和一列 name。我想尽可能有效地将这个名字分成名字和姓氏。我目前的方法是,

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 操作一样快吗?

谢谢!

【问题讨论】:

标签: python pandas


【解决方案1】:

尝试(需要 pandas >= 0.8.1):

splits = x['name'].split()
df['first'] = splits.str[0]
df['last'] = splits.str[1]

【讨论】:

  • 完美!不知道这个添加。
  • 有趣的是,这个问题与this later one 相同,但响应中没有提到Series.split()。是否已从 pandas 中删除?
  • 现在可以使用Series.str.split()
猜你喜欢
  • 1970-01-01
  • 2011-03-11
  • 1970-01-01
  • 2022-11-28
  • 2021-04-23
  • 2019-08-28
  • 1970-01-01
  • 2021-12-10
  • 1970-01-01
相关资源
最近更新 更多