从列表中的单词末尾删除'S'(Python,Pandas)

时间:2014-10-15 05:45:46

标签: python-3.x pandas

说我有这样的清单:

Words
One
Twos
Threes
Four
Fives
...
Thousand

是否有一种相对简单的方法来删除' S'从结尾的话?所以它会变成:

Words
One
Two
Three
Four
Five
...
Thousand

1 个答案:

答案 0 :(得分:1)

您可以使用np.where来测试最后一个字符是否为's',如果是,则删除它,否则使用现有值,这将被矢量化并且比列表理解快得多:

In [14]:

df['Words'] = np.where(df['Words'].str[-1] == 's', df['Words'].str[:-1], df['Words'])
df
Out[14]:
      Words
0       One
1       Two
2     Three
3      Four
4      Five
5  Thousand

可能更快的替代方法是使用loc并且您的条件仅剥离包含尾随s的最后一个字符,所有其他行保持不变:

In [18]:

df.loc[df['Words'].str[-1] == 's','Words'] = df['Words'].str[:-1]
df
Out[18]:
      Words
0       One
1       Two
2     Three
3      Four
4      Five
5  Thousand