gpt4 book ai didi

python - Pandas 的差异但用户定义的函数

转载 作者:行者123 更新时间:2023-12-03 22:11:53 25 4
gpt4 key购买 nike

Pandas 的pandas.DataFrame.diff几乎做我正在尝试做的事情。

来自 documentation

>>> df = pd.DataFrame({'a': [1, 2, 3, 4, 5, 6],
... 'b': [1, 1, 2, 3, 5, 8],
... 'c': [1, 4, 9, 16, 25, 36]})
>>> df
a b c
0 1 1 1
1 2 1 4
2 3 2 9
3 4 3 16
4 5 5 25
5 6 8 36
df.diff(axis=0)df.diff(axis=1)分别产生
>>> df.diff()
a b c
0 NaN NaN NaN
1 1.0 0.0 3.0
2 1.0 1.0 5.0
3 1.0 1.0 7.0
4 1.0 2.0 9.0
5 1.0 3.0 11.0

>>> df.diff(axis=1)
a b c
0 NaN 0.0 0.0
1 NaN -1.0 3.0
2 NaN -1.0 7.0
3 NaN -1.0 13.0
4 NaN 0.0 20.0
5 NaN 2.0 28.0

什么 df.diff正在做的本质上是应用这个功能
def diff_func(columns):
return columns[1:] - columns[0:-1]

我想定义我自己的函数,它取代了 diff_func .
我想要的是将我自己的函数(可能是非线性的)“应用”到连续的( periods=1 )列/行。例如, func(x,y) = sin(x)*cos(y)哪里 x,yperiods=n 的连续列或行

最佳答案

您应该考虑的 shift

df-df.shift(1)
a b c
0 NaN NaN NaN
1 1.0 0.0 3.0
2 1.0 1.0 5.0
3 1.0 1.0 7.0
4 1.0 2.0 9.0
5 1.0 3.0 11.0

关于python - Pandas 的差异但用户定义的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53808042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com