<p>我关注您的函数<code>point</code>和调用<code>apply</code>的for循环。在</p>
<p>函数<code>Point</code>可以转换成这个条件(<code>a_df</code>是<code>DataFrameDict</code>中的每个数据帧):</p>
<pre><code>(a_df['Ob2'] > 0.5) & (a_df['Ob3'] - a_df['Ob1'] < 0.01)
</code></pre>
<p>在这种情况下,将值<code>1 - x['Ob3'] + x['Ob1']</code>分配给<code>Test</code>列。其他所有操作都将0分配给<code>Test</code>。所以,让我们将新列<code>Test</code>分配给每个<code>a_df</code>。然后,只过滤符合上述条件的行,以缩小数据集的范围并为此子集设置新值。最后,将这个子集<code>Test</code>列值更新回一个_df['Test'],并将其分配回<code>DataFrameDict</code>字典。所以,你的for循环将变成:</p>
^{pr2}$
<p>这跑得很快</p>
<p><em>输出</em>:根据指定的条件,<code>DataFrameDict</code>列的每个数据帧都填充了<code>Test</code>列。我从<code>DataFrameDict</code>随机选取一个最终数据帧来显示输出。在</p>
<pre><code>In [1288]: DataFrameDict[('player65', 'player67')]
Out[1288]:
Names Ob1 Ob2 Ob3 Test
61456 player67 0.000271 0.686051 0.729086 0.000000
25824 player65 0.001281 0.505552 0.296550 0.000000
25544 player65 0.001398 0.770805 0.471477 0.000000
65864 player65 0.001999 0.147407 0.291841 0.000000
33104 player65 0.002661 0.254329 0.126290 0.000000
42554 player65 0.003172 0.529603 0.181796 0.000000
28064 player65 0.003663 0.227429 0.558233 0.000000
24844 player65 0.005517 0.096817 0.710771 0.000000
2584 player65 0.005974 0.338904 0.582034 0.000000
42694 player65 0.005996 0.171637 0.765277 0.000000
6154 player65 0.006126 0.181239 0.295149 0.000000
65234 player65 0.008386 0.180613 0.994273 0.000000
5034 player65 0.008921 0.013060 0.305063 0.000000
21766 player67 0.010950 0.590966 0.481547 0.000000
53054 player65 0.010957 0.731794 0.262754 0.000000
15956 player67 0.010996 0.046718 0.153172 0.000000
36046 player67 0.011634 0.250039 0.064184 0.000000
50394 player65 0.011835 0.995986 0.834281 0.000000
64326 player67 0.011974 0.499262 0.745194 0.000000
30236 player67 0.013029 0.101714 0.143509 0.000000
23374 player65 0.014865 0.158185 0.575582 0.000000
1256 player67 0.014915 0.938301 0.629850 0.000000
10216 player67 0.015122 0.450750 0.137085 0.000000
21904 player65 0.016372 0.147897 0.786882 0.000000
34854 player65 0.016603 0.513692 0.676243 0.000000
33806 player67 0.016820 0.063896 0.577731 0.000000
29816 player67 0.017565 0.060496 0.151780 0.000000
6924 player65 0.017652 0.121581 0.117512 0.000000
39126 player67 0.017990 0.516819 0.663672 0.000000
39896 player67 0.018085 0.031526 0.075832 0.000000
... ... ... ... ... ...
61526 player67 0.985386 0.512073 0.754241 1.231145
48926 player67 0.985504 0.007080 0.671456 0.000000
16234 player65 0.985775 0.846647 0.998181 0.000000
12736 player67 0.985846 0.283997 0.667314 0.000000
47874 player65 0.986084 0.052026 0.508918 0.000000
29886 player67 0.986655 0.998440 0.068136 1.918518
49416 player67 0.986706 0.833053 0.182814 1.803892
42486 player67 0.986797 0.608128 0.136219 1.850578
55644 player65 0.987796 0.215898 0.561002 0.000000
1814 player65 0.987935 0.324954 0.525433 0.000000
7554 player65 0.988910 0.664914 0.674546 1.314365
59774 player65 0.989147 0.235214 0.913588 0.000000
58444 player65 0.989467 0.645191 0.533468 1.455999
62856 player67 0.989470 0.523544 0.302838 1.686632
48646 player67 0.990588 0.522521 0.201132 1.789456
11336 player67 0.990629 0.932360 0.756544 1.234085
31774 player65 0.990881 0.981641 0.943824 1.047057
18964 player65 0.992287 0.808989 0.948321 1.043967
14486 player67 0.992909 0.437701 0.484678 0.000000
12246 player67 0.994027 0.542903 0.234830 1.759197
33596 player67 0.994257 0.949055 0.098368 1.895889
6436 player67 0.994661 0.444211 0.572136 0.000000
4194 player65 0.995022 0.721113 0.584195 1.410826
42696 player67 0.995065 0.516103 0.918737 1.076328
51026 player67 0.995864 0.877335 0.516737 1.479127
14136 player67 0.997691 0.134021 0.913969 0.000000
47664 player65 0.998051 0.628051 0.722695 1.275357
55924 player65 0.998079 0.828749 0.151217 1.846863
18474 player65 0.998780 0.200990 0.098713 0.000000
41296 player67 0.998884 0.167139 0.504899 0.000000
[2000 rows x 5 columns]
</code></pre>