从pandas数据帧列值中删除句子的第一个单词。

4

我有一个如下的数据框:

df:
col1      col2
 A        blue berry
 B        nice water bottle

我想要从col2的值中去除第一个单词,最终的数据框将如下所示:
df1:
col1       col2
 A         berry
 B         water bottle

如何使用pandas以最有效的方式完成这个任务。
3个回答

4

使用split函数,通过第一个空格进行分割并设置n=1,然后通过索引选择第二个列表:

df['col2'] = df['col2'].str.split(n=1).str[1]
print (df)
  col1          col2
0    A         berry
1    B  water bottle

细节:

print (df['col2'].str.split(n=1))
0           [blue, berry]
1    [nice, water bottle]
Name: col2, dtype: object

如果性能很重要且没有缺失值,请将解决方案转换为列表理解式。
df['col2'] = [x.split(maxsplit=1)[1] for x in df['col2']]

3
d['col2'] = d['col2'].apply(lambda x: ' '.join(x.split(' ')[1:]))

输出

  col1          col2
0    A         berry
1    B  water bottle

1
在你的情况下
df1.col2 = df1.col2.str.split(" ",1).str[1]

可能会起到作用。 .str 在列上提供向量化字符串功能,而split需要一个额外的参数来指定最大分割次数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接