
[英]python dataframe as function input and get another dataframe with new name as output
[英]using the output of a function as the input in another function python new to coding
# any help is greatly appreciated new to this stuff
def total_bases(int1,int2,int3,int4):
"""(int, int, int, int) -> integer
Return the total number of bases covered
>>>total_bases(2,3,4,5)
40
"""
return int1+2*int2+3*int3+4*int4
def slugging_percentage(total_bases,int5):
""" (total_bases, int5) -> float # so for instance i need the product of the first function for the second function
Return the slugging percentage given the total number of bases covered and the total number at bat(int5)
>>>slugging_percentage(20,9)
2.22
"""
return total_bases/int5
def on_base_percentage(h,bb,hbp,ab,sf):
"""(int,int,int,int,int) -> float
Return the on-base percentage given the hits, base on balls, hit by pitch, at bats and sacrfice hits
>>>on_base_percentage(1,2,3,4,5)
0.43
"""
return (h+bb+hbp)/(ab+bb+hbp+sf)
def on_base_plus_slugging(on_base_percentage,slugging_percentage):
"""(float,float) -> float # as well as for this
Return the on-base plus slugging given the on-base percentage and the slugging percentage
>>>on_base_plus_slugging(1.0,2.0)
3.0
"""
return on_base_percentage+slugging_percentage
def OPS_value(on_base_plus_slugging):
"""(float) -> string
Return the on-base plus slugging value given the on-base plus slugging score range
>>>OPS_value(0.8234)
B
"""
if on_base_plus_slugging > 0.9000:
return "A"
elif on_base_plus_slugging > 0.7667:
return "B"
elif on_base_plus_slugging > 0.7000:
return "C"
else on_base_plus_slugging < 0.7000:
return "F"
elif on_base_plus_slugging == 0.7000:
return "F"
函数可以返回值。 您可以将这些值存储为变量。 然后,您可以将这些值用作其他功能的输入。
我想你想计算OPS_value
使用on_base
和slugging
的百分比。
所以,你会计算on_base
, total_bases
,并slugging
,并将返回值存储在变量。
然后,您将这些变量作为输入传递给OPS_value
函数,该函数返回最终的计算值。
请参见以下示例:
def OPS_value(percent):
"""(float) -> string
Return the on-base plus slugging value given the on-base plus slugging score range
>>>OPS_value(0.8234)
B
"""
if percent > 0.9000:
return "A"
elif percent > 0.7667:
return "B"
elif percent > 0.7000:
return "C"
else:
return "F"
total_bases = total_bases(2, 3, 4, 5) # Get the return value for total_bases
slugging = slugging_percentage(total_bases, 9) # Get the return value for slugging_percent
on_base = on_base_percentage(1, 2, 3, 4, 5)
print OPS_value(on_base + slugging) # using on_base + slugging as input
我们正在试图做的是保持与计算每一件事情的数学total_bases
, slugging
等分开。
与原始代码相比的另一个主要变化是,您不必具有仅添加两个值的功能。 您可以而且应该一站式完成。
将变量另存为全局变量是一种方法。
def some_function():
global var #This is a global variable
#Do things to variable
我相信您正在寻找的另一种方法是在函数内部调用函数。 看起来像这样:
def function_1(#some variable):
#Stuff could be up here
num = function2(5)
#Stuff could be down here
def function_2(a_number):
a_number = a_number*2
return a_number
这将使变量num
= 5 * 2。
我希望这有帮助。
问题未解决?试试以下方法:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.