У меня есть датафрейм панд, который выглядит следующим образом:
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'])
Я хочу добавить столбец E
такой, что df.loc[(slice(None),'one'),'E'] = 1
и df.loc[(slice(None),'two'),'E'] = 2
, и я хочу сделать это без итерации по ['one', 'two']
. Я попробовал следующее:
df.loc[(slice(None),slice('one','two')),'E'] = pd.Series([1,2],index=['one','two'])
но он просто добавляет столбец E
с NaN
. Какой правильный способ сделать это?