Python 从列中的字符串中获取第二个单词
我需要将句子的第二个单词存储在一列中。我可以用下面的一行很容易地得到第一个单词:Python 从列中的字符串中获取第二个单词,python,pandas,Python,Pandas,我需要将句子的第二个单词存储在一列中。我可以用下面的一行很容易地得到第一个单词: df['First'] = df['Sentence'].astype(str).apply(lambda x: x.split()[0]) 那么,为什么要用这种方式来获得第二个单词却失败了: df['Second'] = df['Sentence'].astype(str).apply(lambda x: x.split()[1]) 给我 IndexError: list index out of range
df['First'] = df['Sentence'].astype(str).apply(lambda x: x.split()[0])
那么,为什么要用这种方式来获得第二个单词却失败了:
df['Second'] = df['Sentence'].astype(str).apply(lambda x: x.split()[1])
给我
IndexError: list index out of range
将
str.split
与str[1]
一起使用,如果没有第二个单词,则获取NaN
s:
df = pd.DataFrame({'Sentence':['a','a d','s df sd']})
df['Second'] = df['Sentence'].astype(str).str.split().str[1]
print (df)
Sentence Second
0 a NaN
1 a d d
2 s df sd df
错误说明:
至少有一个句子没有空格,因此在
x.split()[1]
中选择列表的第二个值将引发错误,因为第二个列表不存在。将str.split
与str[1]
一起使用,如果没有第二个单词,则获取NaN
s:
df = pd.DataFrame({'Sentence':['a','a d','s df sd']})
df['Second'] = df['Sentence'].astype(str).str.split().str[1]
print (df)
Sentence Second
0 a NaN
1 a d d
2 s df sd df
错误说明:
至少有一个句子没有空格,因此在
x.split()[1]
中选择列表的第二个值会引发错误,因为第二个列表不存在。非常感谢jezrael,这很好,很简单,解决了我的问题。不过,我想知道我的代码出了什么问题。@famargar-我想你的代码失败了,因为至少有一句话没有空格,所以x.split()[1]
失败了。非常简单。我想我的问题对其他人有帮助的唯一方式是,如果我们将这些信息整合到问题或答案中。我相信在你的答案中加上这个会更公平。非常感谢你,耶斯雷尔,这很好很简单,解决了我的问题。不过,我想知道我的代码出了什么问题。@famargar-我想你的代码失败了,因为至少有一句话没有空格,所以x.split()[1]
失败了。非常简单。我想我的问题对其他人有帮助的唯一方式是,如果我们将这些信息整合到问题或答案中。我相信在你的答案中加上这个会更公平。