在pythonvaex库中,如何用该列允许的自定义值替换该列的值

2024-09-28 13:25:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字典,其中包含键值对列name和value作为该列中允许值的列表

如何将字典列表中未出现的值替换为“0”

FinalCat_uu是列名列表 组合CAT是Vaex df AllowedCatColValuesFast是字典

def returnVal(x, li):
if x in li:
    return x
else:
    return '0'

for i in FinalCat_:
CombinedCat[i+"Mod"] = CombinedCat.apply(returnVal, [CombinedCat[i], AllowedCatColValuesFast[i]])

因此,当我执行.value_counts()时,它为我提供了一个错误列表索引,超出了创建的新列的范围


Tags: namein列表return字典valuelicat
1条回答
网友
1楼 · 发布于 2024-09-28 13:25:11

您可以使用map方法,将default_value参数设置为"0"

如果每个列都有一个接受值列表,那么可以创建一个虚拟映射,将每个元素映射到自身,并在map中使用它

下面是一个关于vaex3.0.0的快速示例:

import pandas as pd
import vaex

df = pd.DataFrame({"column": ["x", "y", "z"]})

df = vaex.from_pandas(df)
accepted_values = ["x", "y"]
default_value = "0"

df["column"].map(dict(zip(accepted_values, accepted_values)), default_value=default_value)

它给出了预期的输出:

Expression = _choose_masked(_ordinal_values(column, map_key_set), map_...
Length: 3 dtype: str (expression)
                -
0  x
1  y
2  0

您必须确保使用的default_value与列的类型相同。例如,如果有一列包含字符串,则不能使用整数作为默认值

相关问题 更多 >

    热门问题