【问题标题】:How to replace substrings in a dataframe in Python如何在 Python 中替换数据框中的子字符串
【发布时间】:2019-02-20 14:44:48
【问题描述】:


我有一个数据框,我想根据另一个数据框将一些词替换为其他词:

import pandas as pd
dist = pd.DataFrame([["21","apple"],["25","balana"],["30","lemon"]],columns=["idx","item"])
a = pd.DataFrame(["apple - banana"],columns=["pf"])
a['pf'] = a['pf'].replace(dist["item"], dist["idx"], regex=True)
print(a)

我该怎么做? (这在当前形式下不起作用)

【问题讨论】:

  • 你想让a['pf']成为'21 - 25'
  • 是的,'21 - 25' 是想要的结果。

标签: python pandas dataframe replace


【解决方案1】:

将翻译表转换为字典似乎可以解决问题:

import pandas as pd
dist = pd.DataFrame([["apple","21"],["banana","25"],["lemon","30"]],columns=["item","idx"])
dist = dist.set_index('item')['idx'].to_dict()
a = pd.DataFrame(["apple - banana"],columns=["pf"])
a['pf'] = a['pf'].replace(dist, regex=True)
print(a)

【讨论】:

    【解决方案2】:

    你可以试试这个:

    dist = pd.DataFrame([["21","apple"],["25","balana"],["30","lemon"]],columns= ["idx","item"])
    a = pd.DataFrame(["apple - banana"],columns=["pf"])
    b = dict(zip(dist["idx"], dist["item"]))
    
    def replace_items(token):
        for key, value in b.items():
            token = token.replace(value, key)
        return token
    
    a["pf"] = a["pf"].apply(replace_items)
    

    请注意,dist 数据框中的 bananabalana。不确定这是不是有意...

    【讨论】:

      猜你喜欢
      • 2018-09-24
      • 1970-01-01
      • 2019-12-28
      • 2018-06-21
      • 2013-06-11
      • 1970-01-01
      • 1970-01-01
      • 2013-05-08
      • 2021-12-19
      相关资源
      最近更新 更多