回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>这个<a href="https://stackoverflow.com/questions/42544401/dynamic-way-to-create-new-columns-as-a-function-of-existing-columns-in-pandas">question</a>的一个稍微不同的版本。
答案基本上是有效的,挑战是我认为我需要在每次循环后更新范围,我不完全确定如何实现这一点。你知道吗</p>
<p>或者,这似乎类似于滚动和类型的问题,但窗口是动态的,我正在创建新的列…(不确定)</p>
<p>无论如何,这是我最后写出来的代码,但我知道它很糟糕,仍然是一个n00b</p>
<p>有什么更优雅的方法</p>
<p>样本数据</p>
<pre><code>df = pd.DataFrame({'level1': np.random.randint(1, 10, 10),
'level2': np.random.randint(1, 10, 10),
'level3': np.random.randint(1, 10, 10),
'level4': np.random.randint(1, 10, 10),
'level5': np.random.randint(1, 10, 10),
'level6': np.random.randint(1, 10, 10),
'level7': np.random.randint(1, 10, 10),
'level8': np.random.randint(1, 10, 10),
'level9': np.random.randint(1, 10, 10),
'level10': np.random.randint(1, 10, 10),
'level11': np.random.randint(1, 10, 10),
'level12': np.random.randint(1, 10, 10),
'level13': np.random.randint(1, 10, 10),
'level14': np.random.randint(1, 10, 10),
'level15': np.random.randint(1, 10, 10)})
</code></pre>
<p>我目前的“有效”解决方案</p>
<pre><code>orgcols['layers2'] = orgcols.Level2 + orgcols.Level3 + orgcols.Level4 + orgcols.Level5 + orgcols.Level6 + orgcols.Level7 + orgcols.Level8 +orgcols.Level9 + orgcols.Level10 + orgcols.Level11 + orgcols.Level12 + orgcols.Level13 + orgcols.Level14 + orgcols.Level15
orgcols['layers3'] = orgcols.Level3 + orgcols.Level4 + orgcols.Level5 + orgcols.Level6 + orgcols.Level7 + orgcols.Level8 + orgcols.Level9 + orgcols.Level10 + orgcols.Level11 + orgcols.Level12 + orgcols.Level13 + orgcols.Level14 + orgcols.Level15
orgcols['layers4'] = orgcols.Level4 + orgcols.Level5 + orgcols.Level6 + orgcols.Level7 + orgcols.Level8 + orgcols.Level9 + orgcols.Level10 + orgcols.Level11 + orgcols.Level12 + orgcols.Level13 + orgcols.Level14 + orgcols.Level15
orgcols['layers5'] = orgcols.Level5 + orgcols.Level6 + orgcols.Level7 + orgcols.Level8 + orgcols.Level9 + orgcols.Level10 + orgcols.Level11 + orgcols.Level12 + orgcols.Level13 + orgcols.Level14 + orgcols.Level15
orgcols['layers6'] = orgcols.Level6 + orgcols.Level7 + orgcols.Level8 + orgcols.Level9 + orgcols.Level10 + orgcols.Level11 + orgcols.Level12 + orgcols.Level13 + orgcols.Level14 + orgcols.Level15
orgcols['layers7'] = orgcols.Level7 + orgcols.Level8 + orgcols.Level9 + orgcols.Level10 + orgcols.Level11 + orgcols.Level12 + orgcols.Level13 + orgcols.Level14 + orgcols.Level15
orgcols['layers8'] = orgcols.Level8 + orgcols.Level9 + orgcols.Level10 + orgcols.Level11 + orgcols.Level12 + orgcols.Level13 + orgcols.Level14 + orgcols.Level15
orgcols['layers9'] = orgcols.Level9 + orgcols.Level10 + orgcols.Level11 + orgcols.Level12 + orgcols.Level13 + orgcols.Level14 + orgcols.Level15
orgcols['layers10'] = orgcols.Level10 + orgcols.Level11 + orgcols.Level12 + orgcols.Level13 + orgcols.Level14 + orgcols.Level15
orgcols['layers11'] = orgcols.Level11 + orgcols.Level12 + orgcols.Level13 + orgcols.Level14 + orgcols.Level15
orgcols['layers12'] = orgcols.Level12 + orgcols.Level13 + orgcols.Level14 + orgcols.Level15
orgcols['layers13'] = orgcols.Level13 + orgcols.Level14 + orgcols.Level15
orgcols['layers14'] = orgcols.Level14 + orgcols.Level15
orgcols['layers15'] = orgcols.Level15
</code></pre>