python – 按整数索引选择并修改pandas数据帧中的切片
发布时间:2020-05-25 07:09:02 所属栏目:Python 来源:互联网
导读:我有一个如下数据框:df = pd.DataFrame([[1,2],[10,20],[10,2],[1,40]],columns = [a,b]) a b 0 1 2 1 10 20 2 10 2 3 1 40 我想选择a == 1的b列,以下是经典选择:df[df.a == 1].b a b 0
|
我有一个如下数据框:
我想选择a == 1的b列,以下是经典选择:
然后我想选择这个子数据帧的第i行,这不是索引为i的行.还有几种方法,如下所示:
到现在为止还挺好.问题是当我尝试修改我到达那里的值时,实际上这个选择方法会产生数据帧切片的副本,而不是对象本身.因此我无法在原地进行修改.
我不知道“复制”问题在哪个部分,因为以下两个产生同样的问题:
所以我的问题是这样的:如何通过掩码选择(有条件地在列值上)和行选择(通过子数据帧中的行的排名,而不是其索引值)来更改值? 最佳答案 使用带有布尔掩码的loc并直接传递索引:
所以这里我们使用df [‘a’] == 1来掩盖df,这将返回一个布尔数组,我们屏蔽df并选择列’b’:
然后直接下标索引:
然后我们可以将此索引标签传递回顶级loc. 该测试[test.a == 1] .b.iloc [[1]] = 3是chained indexing,这就是提出警告的原因. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
