Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 比较数据帧中的布尔值_Python_Pandas - Fatal编程技术网

Python 比较数据帧中的布尔值

Python 比较数据帧中的布尔值,python,pandas,Python,Pandas,我有一个包含布尔值的数据框。此信息是关于用户在系统中的活动。列表示时间和行-用户ID。如果用户当时处于活动状态,则为真值;如果用户未处于活动状态,则为假值。我想分配状态而不是布尔值。 例如,如果用户处于活动状态,则状态为1;如果用户在某个时间未处于活动状态,则状态为0;如果用户离开系统,则状态为-1。非活动用户和离开系统的用户之间的区别在于,对于非活动用户,False后跟True,而对于离开系统的用户,False始终为False 输入看起来像: inputt = pd.DataFrame([[T

我有一个包含布尔值的数据框。此信息是关于用户在系统中的活动。列表示时间和行-用户ID。如果用户当时处于活动状态,则为真值;如果用户未处于活动状态,则为假值。我想分配状态而不是布尔值。 例如,如果用户处于活动状态,则状态为1;如果用户在某个时间未处于活动状态,则状态为0;如果用户离开系统,则状态为-1。非活动用户和离开系统的用户之间的区别在于,对于非活动用户,False后跟True,而对于离开系统的用户,False始终为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
但是,它给了我关于使用范围的错误。范围(2,25)用于遍历列


请帮我解决这个问题。谢谢

您是如何使用该函数的?错误到底是什么?请考虑提供一个。你可以添加你的数据文件的样本和你期待的结果吗?请检查并尝试添加预期的输出。你提供的示例数据只有24个遗憾,我看到预期的输出,你能添加与预期输出相似的输入数据吗?