【问题标题】:Replace string taken from another column in pandas替换从熊猫的另一列中获取的字符串
【发布时间】:2020-04-05 15:16:00
【问题描述】:

我正在尝试对 pandas 数据框的一列进行替换,如下所示。

发件人:

a          b
house      ho
cheese     ee
king       ng

收件人:

a        b
use      ho
chse     ee
ki       ng

我的尝试是使用:

df['a'] = df['a'].str.replace(df['b'], "")

但我得到 TypeError: 'Series' 对象是可变的,因此它们不能被散列

我已经通过在数据帧中逐行迭代来完成它,但它的 200,000 行因此需要几个小时。有谁知道我怎样才能做到这一点?

【问题讨论】:

    标签: pandas dataframe replace


    【解决方案1】:

    因为性能很重要,所以可以使用replace 的列表理解来替换每行:

    df['a'] = [a.replace(b, "") for a, b in df[['a','b']].values]
    

    DataFrame.apply 的另一个解决方案更慢:

    df['a'] = df.apply(lambda x: x.a.replace(x.b, ""), axis=1)
    

    print (df)
          a   b
    0   use  ho
    1  chse  ee
    2    ki  ng
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-23
      • 2018-12-05
      • 2021-05-15
      • 2019-06-03
      • 2020-01-27
      • 2021-07-16
      • 2019-02-06
      • 2017-03-12
      相关资源
      最近更新 更多