Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用python编写函数?_Python - Fatal编程技术网

如何用python编写函数?

如何用python编写函数?,python,Python,我正在进行探索性数据分析,在进行探索性数据分析的同时,我多次使用相同的代码行。因此,我知道为什么我不能为此编写函数。但我是python新手,我不知道如何准确定义函数。因此,请帮助我 textdata是我的主数据框,tonumber、smstext是我的变量 # subsetting the textdata mesbytonum = textdata[['tonumber', 'smstext']] # calculating the no.of messages by tonumber mes

我正在进行探索性数据分析,在进行探索性数据分析的同时,我多次使用相同的代码行。因此,我知道为什么我不能为此编写函数。但我是python新手,我不知道如何准确定义函数。因此,请帮助我

textdata是我的主数据框,tonumber、smstext是我的变量

# subsetting the textdata
mesbytonum = textdata[['tonumber', 'smstext']]
# calculating the no.of messages by tonumber
messbytonum_freq = mesbytonum.groupby('tonumber').agg(len)
# resetting the index
messbytonum_freq.reset_index(inplace=True)
# making them in a descending order
messbytonum_freq_result = messbytonum_freq.sort(['smstext'], ascending=[0])
#calcuating percentages
messbytonum_freq_result['percentage'] = messbytonum_freq_result['smstext']/sum(messbytonum_freq_result['smstext'])
# considering top10
top10tonum = messbytonum_freq_result.head(10)
# top10tonum  
我已经重复了大约20次类似的代码,所以我想为上面的代码编写函数,这使我的代码更小。所以请帮助我如何定义


提前感谢

函数定义如下:

def func(arg1, arg2, argN):
    # do something
    # you may need to return value(s) too
func(1,2,3) # you can use anything instead of 1,2 and 3
并这样称呼:

def func(arg1, arg2, argN):
    # do something
    # you may need to return value(s) too
func(1,2,3) # you can use anything instead of 1,2 and 3
会的

def MyFunc(textdata):
    mesbytonum = textdata[['tonumber', 'smstext']]
    messbytonum_freq = mesbytonum.groupby('tonumber').agg(len)
    messbytonum_freq.reset_index(inplace=True)
    messbytonum_freq_result = messbytonum_freq.sort(['smstext'], ascending=[0])
    messbytonum_freq_result['percentage'] = messbytonum_freq_result['smstext']/sum(messbytonum_freq_result['smstext'])
    top10tonum = messbytonum_freq_result.head(10)
    return   # what do you want to return?

# use this function
result=MyFunc(<argument here>)

# then you need to use result somehow
你必须像这样使用它

mySpam, myEgg=MyFunction(<argument>)

完整地说,您将通过调用result=MyFunc获得结果。然后,结果将被设置为等于返回后在函数中输入的任何值。您在函数中使用mesbytonum=textdata[['tonumber','smstext']]命令,有时我的变量不同,如果我直接给出数据,它将始终为运算符计算。因此,请以这种方式帮助我。如果可以,请编辑给定的答案。非常感谢。@suri1617,只需在这个函数中添加一些参数并在内部使用它们