小编poP*_*lor的帖子

对于寻找一致性的循环,大量数据需要花费大量时间.(14 +小时为0.15mln*36k行)

我在python3.5中运行此代码以查找Concordance(逻辑回归).

for i in (ones2.index):
    for j in (zeros2.index):
      pairs_tested = pairs_tested+1
      if(ones2.iloc[i,1] > zeros2.iloc[j,1]):
          conc = conc+1
      elif(ones2.iloc[i,1]==zeros2.iloc[j,1]):
          ties = ties+1
      else:
          disc = disc+1

  # Calculate concordance, discordance and ties
concordance = conc/pairs_tested
discordance = disc/pairs_tested
ties_perc = ties/pairs_tested

print("Concordance = %r", concordance)
print("Discordance = %r", discordance)
print("Tied = %r", ties_perc)
print("Pairs = %r", pairs_tested)
Run Code Online (Sandbox Code Playgroud)

有在0.15mln行zeros2(熊猫据帧)和36K行ones2(熊猫数据帧).两个表都有两个变量

[i]响应者(在0中,Responder0 = 0,在ones2中为Responders1 = 1).

[ii]概率(在0中的prob0和在ones2中的prob1).

我的问题是: for循环耗时12小时,并且在询问此问题时仍在运行.需要帮忙.如何更快地执行此操作.我在带有8GB RAM的Windows 64bit机器上运行它.

python performance for-loop python-3.x

0
推荐指数
1
解决办法
951
查看次数

标签 统计

for-loop ×1

performance ×1

python ×1

python-3.x ×1