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

如何按函数向dataframe添加多列

  •  1
  • saga  · 技术社区  · 5 年前

    如果我有这样的df:

       a  b
    0  1  3
    1  2  4
    

    我可以用 df['c'] = '' df['d'] = -1 要添加2列并成为:

       a  b c  d
    0  1  3   -1
    1  2  4   -1
    

    如何在函数中生成代码,以便将该函数应用于df并同时添加所有列,而不是像上面那样逐个添加它们?谢谢

    2 回复  |  直到 5 年前
        1
  •  1
  •   oppressionslayer    5 年前

    创建词典:

    dictionary= { 'c':'', 'd':-1 }
    
    def new_columns(df, dictionary):
        return df.assign(**dictionary)
    

    然后和你的df联系:

    df = new_columns(df, dictionary)
    

    或者(如果您不需要函数调用,不确定您的用例是什么):

    df.assign(**dictionary)
    
        2
  •  0
  •   Samer Ayoub    5 年前
    def update_df(a_df, new_cols_names, new_cols_vals):
      for n, v in zip(new_cols_names, new_cols_vals):
        a_df[n] = v
    
    update_df(df, ['c', 'd', 'e'], ['', 5, 6])