【发布时间】:2019-04-02 03:48:40
【问题描述】:
我有一个看起来像这样的 pandas 数据框:
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 之间添加了一个列。这样做的正确方法是什么?
【问题讨论】:
标签: python pandas dataframe multi-index