如何解决在 Python Vaex 库中,如何用该列的允许自定义值替换列的值
我有一个字典,其中包含键值对列名称和值作为该列中允许值的列表
如何用'0'替换字典列表中没有出现的值
FinalCat_ 是列名列表 CombinedCat 是 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() 时,它为我提供了一个超出范围的错误列表索引,用于创建的新列。
解决方法
您可以使用 map
方法并将 default_value
参数设置为 "0"
。
如果对于每一列,您都有一个可接受值的列表,您可以创建一个虚拟映射,将每个元素映射到自身并在 map
中使用它。
以下是 vaex
3.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
与列具有相同的类型。例如,如果您有一列包含字符串,则不能使用整数作为默认值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。