【问题标题】:replacing values in a data frame from a dictionary with multiple keys用多个键从字典中替换数据框中的值
【发布时间】:2022-11-01 12:56:20
【问题描述】:

我在这里没有看到任何关于此的帖子。我有一个包含一些数据的数据框,我想用字典中的值替换这些值。这可以简单地使用.replace 完成,但我想保持这种动态并使用配对字典映射引用 df 列名。

import pandas as pd

data=[['Alphabet', 'Indiana']]
df=pd.DataFrame(data,columns=['letters','State'])

replace_dict={
    "states":
        {"Illinois": "IL", "Indiana": "IN"},

    "abc":
        {"Alphabet":"ABC", "Alphabet end":"XYZ"}}

def replace_dict():
    return

df_map={
"letters": [replace_dict],
"State": [replace_dict]
}

#replace the df values with the replace_dict values

我希望这是有道理的,但为了解释更多,我想用在 replace_dict 中找到的值替换“字母”和“状态”列下的数据,但从 df_map 中找到的键中引用列名。我知道这个例子过于复杂,但我想提供一个更容易理解的例子。

我需要帮助制作函数“replace_dict”来执行上述操作。

预期输出为:

data=[['ABC', 'IN']]
df=pd.DataFrame(data,columns=['letters','State'])

通过创建一个函数,然后按照这些思路运行该函数

for i in df_map:
for j in df_map[i]:
df= j(i, df)

我将如何创建一个函数来运行这些操作?我还没有看到有人尝试使用 replace_dict 中的多个字典键来执行此操作

【问题讨论】:

    标签: python pandas dataframe dictionary


    【解决方案1】:

    您可以使用.assign.map

    df = df.assign(
        State=df["State"].map(replace_dict.get("states")),
        letters=df["letters"].map(replace_dict.get("abc"))
    )
    
    print(df)
    
      letters State
    0     ABC    IN
    

    【讨论】:

      猜你喜欢
      • 2018-01-28
      • 2013-11-29
      • 1970-01-01
      • 2020-02-15
      • 2023-03-14
      • 2018-09-11
      • 2020-02-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多