比较熊猫数据框中的布尔值

时间:2018-07-27 06:08:43

标签: python pandas

example of dataframe我有一个包含布尔值的pandas数据框。此信息与用户在系统中的活动有关。列代表时间和行-用户ID。如果用户当时处于活动状态,则为true;否则,则为false。我想分配状态而不是布尔值。 例如,如果用户处于活动状态,则状态为1,如果他在一定时间内未处于活动状态,则状态为0,而用户离开系统-状态为-1。非活动用户与离开系统的用户之间的区别在于,对于非活动用户False,之后是True,而对于离开系统的用户,始终为False。

输入看起来像:

inputt = pd.DataFrame([[True, False, False, False], [True, False, True, True]])

预期输出类似于:

output = pd.DataFrame([[1, -1, -1, -1], [1, 0, 1, 1]])

我试图编写检查以下列并根据以下内容分配状态的函数:

def row_to_status(row, columns=range(2,25)):
# -1 = dead, 0 = inactive, 1 = alive
status_row = []
for column in columns:
    status = 1
    if not row[column]:
        status = -1
        next_cols = range(column+1, columns[-1]+1)
        if row[next_cols].sum():
            status = 0
    status_row.append(status)
return status_row

但是,它给我有关使用范围的错误。 Range(2,25)用于遍历各列。

请帮助我解决此问题。谢谢!

0 个答案:

没有答案