用数据框替换列表中的单词

时间:2018-03-12 14:59:09

标签: python python-3.x pandas replace text-mining

我有一个单词列表。说:

list = ['this', 'that', 'and', 'more']

我想以这种方式替换单词:

x    |y
-----------
this |that
plus |more

每次列表中的单词都在y列中时,我想将其替换为同一行中x列中的内容。如果单词不在y中,则应保持原样。怎么办呢?

2 个答案:

答案 0 :(得分:2)

您可以将此转化表(称为df)转换为dict,然后以下内容将作为所需的替换功能。

d = dict(df['y', 'x'].iterrows())

new_list = [d.get(word, word) for word in list]

# new_list: ['this', 'this', 'and', 'plus']

答案 1 :(得分:0)

如果您在pandas数据帧中有翻译表,则可以使用以下脚本:

import pandas as pd
list1 = ['this', 'that', 'and', 'more']
df = pd.DataFrame(dict(zip(['x', 'y'], [['this', 'plus'], ['that', 'more']])))

for i,item in enumerate(list1):
    if item in df.y.values:
        repvalue = df.x[df.y == item].values[0]
        list1[i] = repvalue

这将覆盖原始列表内容