这是我的python代码,执行时抛出错误。
def split_cell(s):
a = s.split(".")
b = a[1].split("::=")
return (a[0].lower(),b[0].lower(),b[1].lower())
logic_tbl,logic_col,logic_value = split_cell(rules['logic_1'][ith_rule])
mems = logic_tbl[logic_tbl[logic_col]==logic_value]['mbr_id'].tolist()
函数split_cell工作正常,logic_tbl中的所有列都是对象数据类型。
答案 0 :(得分:0)
更正了!
Logic_tbl包含pandas dataframe的名称
Logic_col包含pandas dataframe
中列名的名称logic_value包含logic_tbl数据帧中logic_col变量中行的值。
mems = logic_tbl[logic_tbl[logic_col]==logic_value]['mbr_id'].tolist()
我上面尝试过,但是python将logic_tbl视为字符串,而不是做任何pandas数据帧级操作。
So, I had created a dictionary like this
dt_dict={}
dt_dict['a_med_clm_diag'] = a_med_clm_diag
并修改了我的代码,如下所示,
mems = dt_dict[logic_tbl][dt_dict[logic_tbl][logic_col]==logic_value]['mbr_id'].tolist()
这是按预期工作的。当我写这样的时候,我想到了这个想法,
mems = logic_tbl[logic_tbl[logic_col]==logic_value,'mbr_id']
这个抛出的消息就像是,“'logic_tbl'是一个字符串无法过滤”。
答案 1 :(得分:-1)
尝试编写最后一个语句,如下面的代码:
filt = numpy.array[a==logic_value for a in logic_col]
mems = [i for indx,i in enumerate(logic_col) if filt[indx] == True]
这有用吗?