Для следующего фрейма данных:

index      sentences                                            category
1          the side effects are terrible !                         SSRI
2          They are killing me,,, I want to stop                   SNRI
3          I need to contact my physicians ?                        SSRI
4          How to stop it.. I am surprised because of its effect.   SSRI
5                                                                   SSRI
6                    NAN                                            SNRI

Я пытаюсь разметить предложения в столбцах предложений. В столбце предложений есть несколько значений NULL. Это мой код, но он не работает.

df["sentences"] = df.sentences.replace (r'[^a-zA-Z]', '', regex= True, inplace = True)

df["tokenized_sents"] = df["sentences"].apply(nltk.word_tokenize)

Я пробовал это:

df["sentences"] = df.sentences.replace (r'[^a-zA-Z]', 'null', regex= True, inplace = True)

Это создает следующую ошибку:

expected string or bytes-like object

Любое предложение ?

2
Mary 29 Июн 2017 в 04:43

1 ответ

Лучший ответ
#  I added NaN, None to your date for demonstration, please check below first df.
print(df)  

df["tokenized_sents"] = df["sentences"].fillna("").map(nltk.word_tokenize)
print(df)

Первый отпечаток,

   index                                          sentences category
0      1                    the side effects are terrible !     SSRI
1      2              They are killing me,,, I want to stop     SNRI
2      3                  I need to contact my physicians ?     SSRI
3      4  How to stop it.. I am surprised because of its...     SSRI
4      5                                                NaN     SNRI
5      5                                               None     None

Второй отпечаток,

   index                                          sentences category  \
0      1                    the side effects are terrible !     SSRI   
1      2              They are killing me,,, I want to stop     SNRI   
2      3                  I need to contact my physicians ?     SSRI   
3      4  How to stop it.. I am surprised because of its...     SSRI   
4      5                                                NaN     SNRI   
5      5                                               None     None   

                                     tokenized_sents  
0             [the, side, effects, are, terrible, !]  
1  [They, are, killing, me, ,, ,, ,, I, want, to,...  
2          [I, need, to, contact, my, physicians, ?]  
3  [How, to, stop, it.., I, am, surprised, becaus...  
4                                                 []  
5                                                 []  

Кстати, если вы использовали inplace=True явно, вам не нужно снова назначать его исходному df.

df.sentences.replace(r'[^a-zA-Z]', '', regex=True, inplace=True)
#  instead of, df["sentences"] = df.sentences.replace(r'[^a-zA-Z]', '', regex=True, inplace=True)
2
su79eu7k 29 Июн 2017 в 05:44