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