python - 将键值字典对应用于数据框中的多列

标签 python python-3.x pandas dataframe

我需要将更改应用于 2 列中的当前数据框,其中一列的字典键和来自字典的每个值的另一列的值。例如,我找不到任何方法来做到这一点。

dict is - test = {'a':32, 'b':21, 'c':92}

当前数据框看起来像这样

date         env   result         cost

2021-03-01   dev      gcp.dev.a         30
2021-03-01   prd      gcp.prd.d         35
2021-03-01   dev      gcp.dev.j         98
2021-03-01   sandbox  gcp.sandbox.b     94

在对结果和成本列数据框添加字典更改后,应如下所示 -

date         env        result          cost

2021-03-01   dev      gcp.dev.a           30
2021-03-01   prd      gcp.prd.d           35
2021-03-01   dev      gcp.dev.j           98
2021-03-01   sandbox  gcp.sandbox.b       94
2021-03-01   dev      gcp.dev.a           32 
2021-03-01   prd      gcp.prd.b           21  
2021-03-01   prd     gcp.prd.c          92

这里 gcp 是一个固定值,正在添加,dev 和 prd 来自 env 列。

在上方,您注意到最后 3 行是通过采用测试字典键值添加的,每个键值都添加到结果和成本中。即,应在每个键值对的两列中添加相关行

最佳答案

您还可以使用 pd.DateFrame.from_dict() 方法、append() 方法和 ffill() 方法来完成此操作:

test = {'a':32, 'b':21, 'c':92}

newdf=pd.DataFrame(test.values(),index=test.keys(),columns=['cost']).reset_index()
    #OR(use any one of them to create dataframe named newdf)
newdf=pd.DataFrame.from_dict(test,orient='index',columns=['cost']).reset_index().rename(columns={'index':'result'})

最后:

newdf=df.append(newdf,ignore_index=True).ffill()

现在如果你打印 newdf 你会得到你想要的输出:

    date         result     cost
0   2021-03-01      a       30
1   2021-03-01      d       35
2   2021-03-01      j       98
3   2021-03-01      b       94
4   2021-03-01      a       32
5   2021-03-01      b       21
6   2021-03-01      c       92

关于python - 将键值字典对应用于数据框中的多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67207983/

相关文章:

python - 对于通过包和直接从同一模块导入的类型,isinstance 失败

python - 使用 Turtle 在 Python 中出现错误颜色字符串错误

python - 如何合并数据框中一行的数据?

python - 是否定义了 Python flask 的路由顺序?

python - 如何使用一两行检查 Python 列表仅包含 True,然后仅包含 False?

python - 如何使用 Python Pandas 合并多个 CSV 文件

python - String Join 将 True 视为 bool 值而不是字符串

python - Pandas 中的子字符串元素

python - 我怎样才能得到所有可能的日志级别的数组?

python - Eclipse 从全局 easy_install.pth 中删除条目?