gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 02:42:55 26 4
gpt4 key购买 nike

我需要将更改应用于 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com