程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何从 Python 中的数据帧更改数组的值?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何从 Python 中的数据帧更改数组的值??@H_675_1@ 开发过程中遇到如何从 Python 中的数据帧更改数组的值?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何从 Python 中的数据帧更改数组的值?的解决方法建议,希望对你解决如何从 Python 中的数据帧更改数组的值?有所启发或帮助;

我有一个名为 arr1

的数组
    @ExperimentalCoroutInesAPI
    class MyviewmodelTest {

    @get:rule
    val instantexecutorRule = InstantTaskExecutorRule()

    @get:rule
    val coroutInescope = MainCoroutInescopeRule()

    private val viewmodel = Myviewmodel(coroutInescope.dispatcher)


   @Test
   fun teeeeest() = runBlockingTest {

       val stateObserver = viewmodel.secondsToWait.test()

       //When
       viewmodel.startCountDownTimer()

       //then
       val states = stateObserver.valueHistory()
       Assert.assertEquals(SECONDS_DELAY + 1,states.sizE)
       Assert.assertEquals(0,states[0])
       Assert.assertEquals(SECONDS_DELAY,states[1])
       Assert.assertEquals(SECONDS_DELAY - 1,states[2])
       Assert.assertEquals(0,states[SECONDS_DELAy])

       //etc ... we can create a loop for checking all sates

   }

我有一个名为 df_map 的数据框

arr1 
Out[23]: 
[('001','249','580','E930'),('001','270','290','780'),('030','110','789','990','996','E8779','E9349','V10','V85'),'070','360','400','450','490','V40'),('400','916'),'600','725','780','V10'),('110','200','340','410','420','510'),'430'),('210','720',('070','280','286','300','570')]

我想用数据框中的新值交换数组中的旧值

这是我的代码

df_map
Out[24]: 
             old        New

1             001       A91
2             780       B63
3             E8779     C72
4             V85       D02
5             450       E82
            ...       ...  
999            070      F28

但是当我检查 arr1 值时,它们仍然是原始值

我希望 arr1 值成为 df_maps 中的新值

解决方法@H_675_1@

这可以通过将您的数据帧转换为字典来完成,然后只需映射一个函数,该函数从字典中替换列表中的每个元组:

df_map = pd.DataFrame({'Old': ['001','780','E8799','V85','450','070'],'New': ['A91','B63','C72','D02','E82','F28']})
arr1 = [
 ('001','430'),('210','420','V10'),('070','286','290','570')
]

m = df_map.set_index('Old')['New'].to_Dict()
out = [tuple(map(lambda v:m.get(v,v),t)) for t in arr1]

输出:

[
 ('A91',('F28','570')
]

大佬总结

以上是大佬教程为你收集整理的如何从 Python 中的数据帧更改数组的值?全部内容,希望文章能够帮你解决如何从 Python 中的数据帧更改数组的值?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。