我想向现有的熊猫数据框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
有人知道如何解决吗?
答案 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