Python 如何在另外两列的情况下替换一个柱基的值?
如果“活动”列中的值等于0,或者“类别”中的值等于NaN,则“位置”中特定行中的值应=0 以前Python 如何在另外两列的情况下替换一个柱基的值?,python,pandas,data-analysis,Python,Pandas,Data Analysis,如果“活动”列中的值等于0,或者“类别”中的值等于NaN,则“位置”中特定行中的值应=0 以前 active position category 1 1 NaN 1 2 NaN 1 1 a 0 1 a 0 1 a 1 2 a 1 1 b 0 1 b 1 2 b 之后: a
active position category
1 1 NaN
1 2 NaN
1 1 a
0 1 a
0 1 a
1 2 a
1 1 b
0 1 b
1 2 b
之后:
active position category
1 0 NaN
1 0 NaN
1 1 a
0 0 a
0 0 a
1 2 a
1 1 b
0 0 b
1 2 b
一个可能的解决方案,IIUC。将满足条件的所有行设置为0:
In [355]: df.loc[(df.active == 0) | (df.category.isnull()), 'position'] = 0; df
Out[355]:
active position category
0 1 0 NaN
1 1 0 NaN
2 1 1 a
3 0 0 a
4 0 0 a
5 1 2 a
6 1 1 b
7 0 0 b
8 1 2 b
所有其他行保持不变。这是累积和的一个示例。当一个新类别开始时,职位值将不会相加。你是什么意思?0还是空?选择一个…你们能编辑你们的文章,使其包含数据文本而不是图像吗?你能不能也包括你认为输出应该是什么样子。我刚刚对数据框做了修改。有人帮我编辑了它,但数据是错误的。我希望这个职位是这样的-10 1 0 0 2 1 0 2