繁体   English   中英

如何用 python 中的特定值替换列的值?

[英]How replace values of column with specific value in python?

我是 pandas 的新手,我面临更换问题。 所以我正在创建一个 function ,它根据参数替换数据框列的值。 条件是它应该只用一个值替换列的所有值,如下所示: 虽然我尝试收到错误“长度不匹配”

    def replace(df,column,condition):
          for i in column:
              for j in condition:
                   df[i]=j
          return df
    column = ['A','C']
    condition = 11,34
    df
        A  B  C 
     0  12 5  1
     1  13 6  5
     2  14 7  7
    replace(df,column,condition)

my excepted output:

        A  B  C 
     0  11 5  34
     1  11 6  34
     2  11 7  34

使用键:值对,将条件和列转换为字典,解包并分配值

df.assign(**dict(zip(column, condition)))

编辑:我最初建议使用apply但后来意识到这没有必要,因为您忽略了系列中的现有值。 这更简单,应该可以满足您的目的。

例子:

import pandas as pd

data = [[12, 5, 1], [13, 5, 5], [14, 7, 7]]
df = pd.DataFrame(data, columns = ["A", "B", "C"])

def replace(df, columns, values):
    for one_column, one_value in zip(columns, values):
        df[one_column] = one_value

    return df

print(replace(df, ["A", "C"], [11, 34]))

Output:

    A  B   C
0  11  5  34
1  11  5  34
2  11  7  34

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM