在pandas DataFrame多索引功能

时间:2018-07-14 19:39:43

标签: python pandas dataframe multi-index

我想向现有的熊猫数据框df添加一个多索引列。例子:

d = {('a','b'):[1,2,3], ('c', 'd'): [4,5,6]}
df = pd.DataFrame(d)

结果数据框为:

   a  c 
   b  d 
0  1  4 
1  2  5 
2  3  6 

现在,我想向数据框添加一个新列。正确的方法是使用df['e', 'f'] = [7,8,9]。但是,我想使用列表new_key作为键。通常,我可以使用星号*,但显然不能在函数外部使用它。所以我得到以下错误。

new_key = ['e','f']

df[new_key] = [7,8,9]
> KeyError: "['e' 'f'] not in index"

df[*new_key] = [7,8,9]
> SyntaxError: invalid syntax 

有人知道如何解决吗?

1 个答案:

答案 0 :(得分:3)

先投射到 tuple

df[tuple(new_key)] = [7,8,9]

   a  c  e
   b  d  f
0  1  4  7
1  2  5  8
2  3  6  9