【问题标题】:replace value in column with value from the column that has the value [duplicate]用具有值的列中的值替换列中的值[重复]
【发布时间】:2021-04-17 22:30:08
【问题描述】:

我想将valcol 中的值替换为值列中的值。假设您的 df 如下所示:

  col1 col2 col3 valcol
0    a    d    g   col1
1    b    e    h   col1
2    c    f    i   col2

我希望 valcol_new 变成这样:

  col1 col2 col3 valcol valcol_new
0    a    d    g   col1          a
1    b    e    h   col1          b
2    c    f    i   col2          f

如何做到这一点?

用于测试的df:

df = pd.DataFrame({'col1': ['a', 'b', 'c'], 'col2': ['d', 'e', 'f'], 'col3': ['g', 'h', 'i'], 'valcol': ['col1', 'col1', 'col2']})

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    您可以通过enumerate() 方法和列表理解以及loc[] 访问器来做到这一点:

    df['valcol']=[df.loc[x,y] for x,y in enumerate(df['valcol'])]
    

    现在如果你打印 df 你会得到你想要的输出:

        col1    col2    col3    valcol
    0   a       d       g       a
    1   b       e       h       b
    2   c       f       i       f
    

    【讨论】:

    • 这真是太好了。不过需要重新设置索引。
    猜你喜欢
    • 2020-10-17
    • 2023-02-03
    • 1970-01-01
    • 2022-11-02
    • 2020-01-17
    • 1970-01-01
    • 2022-10-14
    • 2023-04-02
    • 2010-12-05
    相关资源
    最近更新 更多