【问题标题】:Adding values to new columns in data frame向数据框中的新列添加值
【发布时间】:2020-11-08 06:18:44
【问题描述】:

我有一个大数据框 (data_df) 并创建了四个新列。假设原始列是“A”、“B”、“C”、“D”,而四个新列是“E”、“F”、“G”、“H”。对于每一行(3000),我需要向新列添加值。在“E”中,它需要是 A/A+B。对于'F' B/A+B。对于'G' C/C+D。对于'H' D/C+D。我需要为每一行运行这个。

【问题讨论】:

    标签: python pandas pandas-groupby


    【解决方案1】:

    这非常简单/直观。类似的问题是here,下面是您具体问题的答案。

    import pandas as pd
    
    ### Make up data for example
    A = [5, 8, 2, -1]
    B = [1, 0, 1, 3]
    df = pd.DataFrame(list(zip(A,B)), columns =['A', 'B'])
    display(df)
    

    ### Calculate Column E
    df['E'] = df['A'] / (df['A'] + df['B'])
    display(df)
    

    【讨论】:

      【解决方案2】:

      回答你的具体问题

      import pandas
      df = pandas.DataFrame({'A':[1,2], 'B':[3,4],'C':[5,6], 'D':[7,8]})
      
      
      df['E'] = df.apply(lambda row: row.A/(row.A + row.B), axis=1)
      df['F'] = df.apply(lambda row: row.B/(row.A + row.B), axis=1)
      df['G'] = df.apply(lambda row: row.C/(row.C + row.D), axis=1)
      df['H'] = df.apply(lambda row: row.D/(row.C + row.D), axis=1)
      print(df)
      

      输出

      A  B  C  D         E         F         G         H
      1  3  5  7  0.250000  0.750000  0.416667  0.583333
      2  4  6  8  0.333333  0.666667  0.428571  0.571429
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-10-09
        • 1970-01-01
        • 1970-01-01
        • 2018-12-29
        • 2020-11-13
        • 1970-01-01
        • 2023-03-14
        • 1970-01-01
        相关资源
        最近更新 更多