Python 如何使用列表将用户定义的函数更改为系列
我看到了一篇关于创造循环总和的帖子 我修改了它,添加了一个衰减“因子”Python 如何使用列表将用户定义的函数更改为系列,python,pandas,Python,Pandas,我看到了一篇关于创造循环总和的帖子 我修改了它,添加了一个衰减“因子” 为了做到这一点,我想我需要修改函数,使用熊猫系列而不是列表。有没有一种简单的方法可以做到这一点?在这种情况下,您可以将序列转换为列表,如下所示: def rec(n, factor): if (type(n) != list): n = list(n) # <---- here it is if len(n) < 2: return n n[1] = factor*n[0] + n[1]
为了做到这一点,我想我需要修改函数,使用熊猫系列而不是列表。有没有一种简单的方法可以做到这一点?在这种情况下,您可以将序列转换为列表,如下所示:
def rec(n, factor):
if (type(n) != list): n = list(n) # <---- here it is
if len(n) < 2: return n
n[1] = factor*n[0] + n[1]
return [n[0]] + rec(n[1:], factor)
print(rec([1,2,3,4], 0.5))
#[1, 2.5, 4.25, 6.125]
import pandas as pd
df_dic = {'ID': [1,1,1,1,2,2,2],
'channel': [1,2,3,4,3,2,4]}
df = pd.DataFrame.from_dict(df_dic)
output = df.groupby(['ID'])['channel'].transform(rec, 0.5)
Out[1]:
0 1.000
1 2.500
2 4.250
3 6.125
4 3.000
5 3.500
6 5.750
def rec(n,系数):
如果(type(n)!=list):n=list(n)#在这种情况下,您可以将序列转换为列表,如下所示:
def rec(n, factor):
if (type(n) != list): n = list(n) # <---- here it is
if len(n) < 2: return n
n[1] = factor*n[0] + n[1]
return [n[0]] + rec(n[1:], factor)
print(rec([1,2,3,4], 0.5))
#[1, 2.5, 4.25, 6.125]
import pandas as pd
df_dic = {'ID': [1,1,1,1,2,2,2],
'channel': [1,2,3,4,3,2,4]}
df = pd.DataFrame.from_dict(df_dic)
output = df.groupby(['ID'])['channel'].transform(rec, 0.5)
Out[1]:
0 1.000
1 2.500
2 4.250
3 6.125
4 3.000
5 3.500
6 5.750
def rec(n,系数):
if(type(n)!=list):n=list(n)#data.groupby('ID')['channel'].ewm(alpha=0.5).mean()
?data.groupby('ID')['channel'].ewm(alpha=0.5).mean()
?
def rec(n, factor):
if (type(n) != list): n = list(n) # <---- here it is
if len(n) < 2: return n
n[1] = factor*n[0] + n[1]
return [n[0]] + rec(n[1:], factor)
print(rec([1,2,3,4], 0.5))
#[1, 2.5, 4.25, 6.125]
import pandas as pd
df_dic = {'ID': [1,1,1,1,2,2,2],
'channel': [1,2,3,4,3,2,4]}
df = pd.DataFrame.from_dict(df_dic)
output = df.groupby(['ID'])['channel'].transform(rec, 0.5)
Out[1]:
0 1.000
1 2.500
2 4.250
3 6.125
4 3.000
5 3.500
6 5.750