可以更换NaN
空list
什么是不容易的添加条件 - 通过使用mask
或combine_first
Series
由空创建lists
:
pos_tweets = [('I love this car', 'positive'),
('This view is amazing', 'positive'),
('I feel great this morning', 'positive'),
('I am so excited about the concert', 'positive'),
(None, 'positive')]
df = pd.DataFrame(pos_tweets, columns= ["Text","col2"])
print (df)
Text col2
0 I love this car positive
1 This view is amazing positive
2 I feel great this morning positive
3 I am so excited about the concert positive
4 None positive
stopwords = ['love','car','amazing']
s = pd.Series([[]], index=df.index)
df["Text"] = df["Text"].str.lower().str.split().mask(df["Text"].isnull(), s)
print (df)
Text col2
0 [i, love, this, car] positive
1 [this, view, is, amazing] positive
2 [i, feel, great, this, morning] positive
3 [i, am, so, excited, about, the, concert] positive
4 [] positive
df['Text']=df['Text'].apply(lambda x:' '.join([item for item in x if item not in stopwords]))
print (df)
Text col2
0 i this positive
1 this view is positive
2 i feel great this morning positive
3 i am so excited about the concert positive
4 positive
另一种解决方案:
stopwords = ['love','car','amazing']
df["Text"]=df["Text"].str.lower().str.split().combine_first(pd.Series([[]], index=df.index))
print (df)
Text col2
0 [i, love, this, car] positive
1 [this, view, is, amazing] positive
2 [i, feel, great, this, morning] positive
3 [i, am, so, excited, about, the, concert] positive
4 [] positive
你所说的“空行”呢? NaN,空串? 这种情况下的预期产出是多少? – FLab
请提供其他用户可以尝试的示例。 – mhoff
之后你打算用干净的文字做什么?也许你应该检查CountVectorized/TfidfVectorizer方法 - 他们可以做到“即时”... – MaxU