回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我想在for循环中调用以相同方式构造的子问题列表(例如E1_1、E1_2、E1_3等)。我的目标是将这些子问题中0的所有实例替换为缺失值(无),前提是受访者表示他们应该回答主要问题(例如,如果df['EOPS']等于1,这意味着回答者表示他们正在回答“E”问题,如果他们没有回答主要问题(例如,如果“E1”没有回答,“E1\u 1”、“E1\u 2”、“E1\u 3”等应重新编码为“NaNs”)</p>
<p>代码:</p>
<pre><code> df = pd.DataFrame([[1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], columns=['EOPS', 'E1', 'E1_1', 'E1_2', 'E1_3', 'E2', 'E2_1', 'E2_2', 'E2_3', 'E3', 'E3_1', 'E3_2', 'E3_3'])
list_of_questions = ['E1', 'E2', 'E3'] # each question in list has associated questions 'E1_1', 'E1_2', 'E1_3', 'E2_1', 'E2_2', 'E2_3', etc.
for question in list_of_questions:
for i in range(1,3):
if df['E1'] == 0 & df['EOPS'] == 1:
df['E1_`i''] = np.where(data_final['E1_`i''] == 0, None, data_final['E1_`i''])
</code></pre>
<p>我怎样才能调用这个循环中的子问题?对于那些熟悉Stata的人来说,这可以用<code>`'</code>引号来完成,就像我在<code>i</code>中所做的那样,但是我想知道在Python中是否也可以这样做。你知道吗</p>
<p>我希望实现的是:</p>
<pre><code> df = pd.DataFrame([[1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, None, None, None, None, None, None, None, None, None, None, None, None]], columns=['EOPS', 'E1', 'E1_1', 'E1_2', 'E1_3', 'E2', 'E2_1', 'E2_2', 'E2_3', 'E3', 'E3_1', 'E3_2', 'E3_3'])
</code></pre>
<p>谢谢!你知道吗</p>