gpt4 book ai didi

Pandas:将值重新分配给数据帧的 'block'

转载 作者:行者123 更新时间:2023-12-05 00:30:00 24 4
gpt4 key购买 nike

可能是一个微不足道的问题,但我需要了解这里发生了什么(以及如何解决它)。

假设我有一个包含“a”和“b”列的数据框,如下所示:

f = pandas.DataFrame({'a':[1,2,3,4,5], 'b':[10,20,30,40,50]})

现在,对于 3 或更少的 'a' 的每个元素,我想将 'b' 的相应元素除以 10。
f[f['a']<=3]['b'] = (f[f['a']<=3]['b'])/10

所以'b'列中的值现在应该是[1,2,3,40,50]。

但我发现列 'b' 保持不变!是什么赋予了?

最佳答案

我认为您正在尝试为副本而不是 View 分配值(f[f['a']<=3]['b'] 是副本),请参阅 Returning a view versus a copy .

但是,您可以重新排序它,它将成为一个 View :

In [11]: f['b'][f['a']<=3] = (f[f['a']<=3]['b'])/10

In [12]: f
Out[12]:
a b
0 1 1
1 2 2
2 3 3
3 4 40
4 5 50

关于Pandas:将值重新分配给数据帧的 'block',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16553298/

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