【问题标题】:Apply a function across multiple Columns in Pandas在 Pandas 中跨多个列应用函数
【发布时间】:2018-08-06 06:03:03
【问题描述】:

我有以下熊猫数据框

 df=   SlNo    A    B   C      D1   D2  D3

        1      1     2   3     21   32   32
        2      2     1   3     21   22   33 
        1      1     2   3     21   32   32
        2      2     1   3     21   22   33 
        1      1     2   3     21   32   32
        2      2     1   3     21   22   33 
        1      1     2   3     21   32   32
        2      2     1   3     21   22   33 

这里 D1、D2、D3 代表因变量,A、B、C 代表因果变量。以下是预期的输出

        SlNo    A    B   C      D1   D2  D3   RD1  RD2  RD3

        1      1     2   3     21   32   32    25   23   21
        2      2     1   3     21   22   33    23   24   27
        1      1     2   3     21   32   32    23   21   26
        2      2     1   3     21   22   33    25   27   21
        1      1     2   3     21   32   32    24   22   21
        2      2     1   3     21   22   33    24   23   26
        1      1     2   3     21   32   32    25   26   28
        2      2     1   3     21   22   33    21   25   26

RD1, RD2, RD3 指的是随机森林算法生成的三列。

     from sklearn.ensmeble import RandomForestClassifier
       Y=df[D1]
       X=df[A, B,C]
       clf = RandomForestClassifier(n_jobs=2, random_state=0)
       clf.fit(X, Y)
       df[RD1]=clf.fit(X, Y)

由于我有很多列,是否可以在多个列中应用此功能 列-D1、D2、D3 同时生成列 RD1、RD2、RD3。

【问题讨论】:

    标签: python list multiple-columns apply


    【解决方案1】:

    您可以创建一个将其应用于单行的函数,然后将该函数传递给:

    pandas.DataFrame.apply()

    【讨论】:

      【解决方案2】:

      您可以在因变量列表上尝试 for 循环。

      from sklearn.ensmeble import RandomForestClassifier
      
      dep_var_list - ['D1', 'D2', 'D3']
      
      for i in dep_var_list:
          rd = 'R' + i
          Y=df[i]
          X=df[A, B,C]
          clf = RandomForestClassifier(n_jobs=2, random_state=0)
          clf.fit(X, Y)
          df[rd]=clf.fit(X, Y)
      

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多