【发布时间】:2021-07-30 22:43:49
【问题描述】:
我有这个玩具数据集:
df = pd.DataFrame({'id':[1,2,3,4,5,6],
'text':['Oh no Monday','Oh no Monday','Gotcha ????????!',
'Coffee, please','Coffee, please','Mails ????'],
'dates':['2019-05-30T17:48:45+0000','2019-05-30T17:48:45+0000',
'2019-05-25T19:40:43+0000','2019-03-30T14:41:20+0000',
'2019-03-30T14:41:20+0000','2019-04-10T19:50:49+0000'],
'group':['meme','humour','meme','gif','gif','meme'],
'theme':['light','light','funny','dark','sad','funny']})
id text dates group theme
0 1 Oh no Monday 2019-05-30T17:48:45+0000 meme light
1 2 Oh no Monday 2019-05-30T17:48:45+0000 humour light
2 3 Gotcha ????????! 2019-05-25T19:40:43+0000 meme funny
3 4 Coffee, please 2019-03-30T14:41:20+0000 gif dark
4 5 Coffee, please 2019-03-30T14:41:20+0000 gif sad
5 6 Mails ???? 2019-04-10T19:50:49+0000 meme funny
我想删除表情符号或将表情符号替换为文本。我试过这个:
df['clean_text'] = df['text'].str.extract(r'(^[a-zA-Z]+)')
但它会删除我较长的文本,例如我想要Oh no Monday,但我只得到Oh!:
id text dates group theme clean_text
0 1 Oh no Monday 2019-05-30T17:48:45+0000 meme light Oh
1 2 Oh no Monday 2019-05-30T17:48:45+0000 humour light Oh
2 3 Gotcha ????????! 2019-05-25T19:40:43+0000 meme funny Gotcha
3 4 Coffee, please 2019-03-30T14:41:20+0000 gif dark Coffee
4 5 Coffee, please 2019-03-30T14:41:20+0000 gif sad Coffee
5 6 Mails ???? 2019-04-10T19:50:49+0000 meme funny Mails
拜托,任何帮助或指导将不胜感激。
【问题讨论】:
-
df['clean_text'] = df['text'].str.replace(r'[^\w\s!\"£$%\^&\*()_+=\-\-\[\]}{#'';:@~/\.,<>\?\|]', '') -
谢谢@MDR,直截了当的回答!