代码之家  ›  专栏  ›  技术社区  ›  n1000

在熊猫数据帧多索引的函数外部解包列表

  •  4
  • n1000  · 技术社区  · 6 年前

    我要将多索引列添加到现有的熊猫数据帧中 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 回复  |  直到 6 年前
        1
  •  3
  •   user3483203    6 年前

    铸造至A 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