首页 > 解决方案 > 使用数据框中 3 个预先存在的列中的 ```def``` 编写 python 函数;第 1 列和第 2 列作为输入 = 第 3 列作为输出

问题描述

我的数据框看起来像这样。3列。我要做的就是编写一个函数,当前两列是输入时,相应的第三列(GHG 强度)是输出。我希望能够输入任何属性名称和年份并获得相应的温室气体强度值。我不能过分强调这必须使用def. 请帮忙!

                             Property Name  Data Year  \
467                             GALLERY 37       2018   
477                        Navy Pier, Inc.       2016   
1057                            GALLERY 37       2015   
1491                       Navy Pier, Inc.       2015   
1576                            GALLERY 37       2016   
2469                   The Chicago Theatre       2016   
3581                       Navy Pier, Inc.       2014   
4060                        Ida Noyes Hall       2015   
4231               Chicago Cultural Center       2015   
4501                            GALLERY 37       2017   
5303                         Harpo Studios       2015   
5450                   The Chicago Theatre       2015   
5556               Chicago Cultural Center       2016   
6275   MARTIN LUTHER KING COMMUNITY CENTER       2015   
6409   MARTIN LUTHER KING COMMUNITY CENTER       2018   
6665                        Ida Noyes Hall       2017   
7621                        Ida Noyes Hall       2018   
7668   MARTIN LUTHER KING COMMUNITY CENTER       2017   
7792                   The Chicago Theatre       2018   
7819                        Ida Noyes Hall       2016   
8664   MARTIN LUTHER KING COMMUNITY CENTER       2016   
8701                   The Chicago Theatre       2017   
9575               Chicago Cultural Center       2017   
10066              Chicago Cultural Center       2018   

       GHG Intensity (kg CO2e/sq ft)  
467                             7.50  
477                            22.50  
1057                            8.30  
1491                           23.30  
1576                            7.40  
2469                            4.50  
3581                           17.68  
4060                           11.20  
4231                           13.70  
4501                            7.90  
5303                           18.70  
5450                             NaN  
5556                           10.30  
6275                           14.10  
6409                           12.70  
6665                            8.30  
7621                            8.40  
7668                           12.10  
7792                            4.40  
7819                           10.20  
8664                           12.90  
8701                            4.40  
9575                            9.30  
10066                           7.50 

标签: pythonpandasfunctiondataframe

解决方案


这是一个示例,使用不同的数据框进行测试:

import pandas as pd

df = pd.DataFrame(data={'x': [3, 5], 'y': [4, 12]})

def func(df, arg1, arg2, arg3):
    ''' agr1 and arg2 are input columns; arg3 is output column.'''
    df = df.copy()
    df[arg3] = df[arg1] ** 2 + df[arg2] ** 2
    return df

结果是:

print(func(df, 'x', 'y', 'z'))

   x   y    z
0  3   4   25
1  5  12  169

推荐阅读