尝试创建依赖于上一个列表的多个列表。
例如,列表1将读取特定文件,并根据比较结果返回数字或布尔值false。
然后,第二个列表将比较与前一个列表中相同位置处出现的数字(如果前一个列表中的值不是false),并根据与第一个列表相同的比较返回值或false
我创建了执行这些比较并创建列表的函数
def generic_state_machine(file,obs_nums):
return file.ix[:,0][obs_nums] if file.ix[:,0][obs_nums] > 0.2 else False
注意:obs_nums会查看项目在列表中的位置
然后我创建了查看不同文件的列表
session_to_leads = []
lead_to_opps = []
for i in range(1,len(a)):
session_to_leads.append(generic_state_machine(file=a,obs_nums=i))
lead_to_opps.append(generic_state_machine(file=b,obs_nums=i)) if session_to_leads != False else lead_to_opps.append(False)
给出
a = pd.DataFrame([0,0.9,0.6,0.7,0.8])
b = pd.DataFrame([0.7,0.51,0.3,0.7,0.2])
我设法解决了遇到的初始错误,现在唯一的问题是,lead_to_opps列表不依赖于session_to_leads,因此,如果位置1中有False值,lead_to_opps不会在同一位置自动返回False。因此,假设random.uniform(0,1)始终生成0.5,这就是我当前的结果:
session_to_leads = [False,0.9,0.6,0.7,0.8]
lead_to_opps = [0.7,0.51,False,0.7,False]
我想要的结果将是
session_to_leads = [False,0.9,0.6,0.7,0.8]
lead_to_opps = [False,0.51,False,0.7,False]
答案 0 :(得分:0)
“在处理上述异常期间,发生了另一个异常:”
这不是错误,基本上是“基于先前的错误,发生了此新错误。
请在此错误之前发布错误,这将有很大帮助。 另外,我没有得到什么[obs_nums]
答案 1 :(得分:0)
看起来
file.ix[:, 1][obs_nums]
是问题所在,假设.ix的行为类似于.loc(似乎已弃用.ix)
>>> help(pd.Dataframe.loc)
Allowed inputs are...
- A slice object with labels, e.g. 'a':'f'
warning:: Note that contrary to usual python slices,
**both** the start and the stop are included
遵循索引有点困难,但是您是否需要切片?只是:
file.loc[obs_nums]
返回您要查找的数字或布尔值?