回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我试图根据下面数据框中一列“Number”中的条件替换列“Alloc1”和“Alloc2”中的值</p>
<pre><code>data = {'ID': ['001', '002', '003', '004'], 'Number': [99, 99, 20, 40], 'Alloc1': [np.NaN, np.NaN, np.NaN, np.NaN], 'Alloc2': [np.NaN, np.NaN, np.NaN, np.NaN]}
# Create DataFrame.
df = pd.DataFrame(data)
</code></pre>
<p>我根据条件插入值的代码如下:-</p>
<pre><code>for numbers in df["Number"]:
if (numbers == 99):
df["Alloc1"] = 31
df["Alloc2"] = 3
else:
df["Alloc1"] = 0
df["Alloc2"] = numbers/2
</code></pre>
<p>上面的语句似乎只执行语句的else部分,并执行“Number”列中不是99的最后一个值。我怎样才能解决这个问题?功能会很好。理想输出应为:-</p>
<pre><code>final = {'ID': ['001', '002', '003', '004'], 'Number': [99, 99, 20, 40], 'Alloc1': [31, 31, 0, 0], 'Alloc2': [3, 3, 10, 20]}
# Create DataFrame.
final_df = pd.DataFrame(final)
</code></pre>