回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个熊猫数据框,看起来像这样:</p>
<pre><code>import pandas as pd
import numpy as np
arrays = [np.array(['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux']),
np.array(['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two'])]
df = pd.DataFrame(np.random.randn(8,4),index=arrays,columns=['A','B','C','D'])
</code></pre>
<p>我想添加一个列<code>E</code>,这样<code>df.loc[(slice(None),'one'),'E'] = 1</code>和<code>df.loc[(slice(None),'two'),'E'] = 2</code>,我不想在<code>['one', 'two']</code>上迭代。我尝试了以下方法:</p>
<pre><code>df.loc[(slice(None),slice('one','two')),'E'] = pd.Series([1,2],index=['one','two'])
</code></pre>
<p>但它只是添加了一列<code>E</code>和<code>NaN</code>。正确的方法是什么?你知道吗</p>