【发布时间】:2019-08-15 01:14:21
【问题描述】:
我的数据框有数千行。
它看起来像这样:
import pandas as pd
import numpy as np
text = ['please send us a dm...','…could you please dm me','dm me plz…','i dmed u yesterday…','dm me asap thx', 'i send a dm to u now', 'thx u r so nice dming u now', 'just sent u a dm']
df = pd.DataFrame({"text": text})
text
0 please send us a dm...
1 …could you please dm me
2 dm me plz…
3 i dmed u yesterday…
4 dm me asap thx
5 i send a dm to u now
6 thx u r so nice dming u now
7 just sent u a dm
我写了一个函数来替换'text'列中的缩写。
def convert(dataframe, column):
dataframe[column] = dataframe[column].apply(lambda x: x.replace(" dm ", " direct message "))
dataframe[column] = dataframe[column].apply(lambda x: x.replace(" dming ", " direct message "))
dataframe[column] = dataframe[column].apply(lambda x: x.replace(" dmed ", " direct message "))
dataframe[column] = dataframe[column].apply(lambda x: x.replace(" plz ", " please "))
dataframe[column] = dataframe[column].apply(lambda x: x.replace(" thx ", " thanks "))
dataframe[column] = dataframe[column].apply(lambda x: x.replace(" u ", " you "))
dataframe[column] = dataframe[column].apply(lambda x: x.replace(" asap ", " as soon as possible "))
dataframe[column] = dataframe[column].apply(lambda x: x.replace("...", " "))
dataframe[column] = dataframe[column].apply(lambda x: x.replace("…", " "))
但是,我的代码无法正常工作,因此它无法完全替换我的数据框中的所有缩写。
convert(df, 'text')
text
0 please send us a dm
1 could you please direct message me
2 dm me plz
3 i direct message you yesterday
4 dm me as soon as possible thx
5 i send a direct message to you now
6 thx you r so nice direct message you now
7 just sent you a dm
所需的最终输出如下所示:
text
0 please send us a direct message
1 could you please direct message me
2 direct message me plz
3 i direct message you yesterday
4 direct message me as soon as possible thanks
5 i send a direct message to you now
6 thanks you r so nice direct message you now
7 just sent you a direct message
我不知道为什么我的代码不起作用。
【问题讨论】:
-
包括 x.replace("dm", "direct message") 和 x.replace("dm", "direct message")
-
您可能应该使用正则表达式而不是固定字符串。在正则表达式中,使用
\b表示单词边界。
标签: python python-3.x pandas nlp