Pandas 熊猫:将值重新分配给';区块';一个数据帧的

Pandas 熊猫:将值重新分配给';区块';一个数据帧的,pandas,dataframe,Pandas,Dataframe,可能是个小问题,但我需要了解这里发生了什么(以及如何解决) 假设我有一个包含列“a”和“b”的数据框,如下所示: f = pandas.DataFrame({'a':[1,2,3,4,5], 'b':[10,20,30,40,50]}) 现在对于'a'的每一个小于等于3的元素,我想把'b'的对应元素除以10 f[f['a']<=3]['b'] = (f[f['a']<=3]['b'])/10 f[f['a']我想你是在给副本赋值,而不是给视图赋值(f[f['a']就像刚才提到的答

可能是个小问题,但我需要了解这里发生了什么(以及如何解决)

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

f = pandas.DataFrame({'a':[1,2,3,4,5], 'b':[10,20,30,40,50]})
现在对于'a'的每一个小于等于3的元素,我想把'b'的对应元素除以10

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

f[f['a']我想你是在给副本赋值,而不是给视图赋值(
f[f['a']就像刚才提到的答案一样,这是副本和视图的问题

如果我想这样做,我可以选择:

f['b'] = np.where(f['a'] <= 3, f['b']/10, f['b'])
#f

Out[26]:
a   b
0   1   1
1   2   2
2   3   3
3   4   40
4   5   50

f['b']=np.where(f['a']要详细说明安迪的答案,请阅读以了解发生了什么。@DanAllan只是用相同的链接填充了它:)@AndyHayden,希望在“返回视图与复制”部分有更多的例子,因为似乎有很多问题(和困惑)在这方面…@杰夫同意了,我会试着把一些东西放在一起。这很混乱,所以写下来是件好事。。。
f['b'] = np.where(f['a'] <= 3, f['b']/10, f['b'])
#f

Out[26]:
a   b
0   1   1
1   2   2
2   3   3
3   4   40
4   5   50