基于包含在字典键中的信息替换 Pandas DataFrame 列的值。

4
这里有一个例子,当行字典键时,会分配列:https://dev59.com/nGIj5IYBdhLWcg3weEwJ#20250996 我要找的情况是当行 包含 字典键时分配列。
例如(基于上述例子):
import pandas as pd
df = pd.DataFrame({'col1': {0: 'aba', 1: 'abc', 2: 'abx'}})

#gives me a DataFrame
     col1 
0    aba #contains 'ba'
1    abc #will NOT be replaced
2    abx #contains 'bx'

dictionary = {'ba': 5, 'bx': 8}

#and I need to get:

     col1 
0    5
1    abc
2    8
1个回答

5
您可以使用 DataFrame.replace 函数,将参数 regex 设置为True,并传递映射字典。
df.replace(dictionary, regex=True)

#   col2
# 0    5
# 1  abc
# 2    8

df.replace的这种用法比较少见。你可以在这里了解更多信息。

注:df.replace是pandas库中的函数,用于数据框(DataFrame)中的值替换操作。


1
这很不错。+1 - Mayank Porwal
@MayankPorwal 谢谢。df.replace非常方便,但有时可能会很慢。 - Ch3steR
一些关于这项工作的信息~ https://dev59.com/RKbja4cB1Zd3GeqPdkE2 - BENY
@BENY 谢谢。我已将其作为注释添加到我的答案中,因为评论可能会被删除。 - Ch3steR
这正是我在寻找的。谢谢你。我只会在这一行中添加 inplace=True 参数。 - bakunet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接