首页 > 解决方案 > 将函数应用于列中的每个行序列

问题描述

我有一个这样的df:

     xx
A    3
B    4
C    1
D    5
E    7
F    6
G    3
H    5
I    8
J    5

我想将 pct_change 函数应用于每 5 行的 XX 列:

生成以下输出:

         xx
A       NaN
B  0.333333
C -0.750000
D  4.000000
E  0.400000
F       NaN
G -0.500000
H  0.666667
I  0.600000
J -0.375000

我怎么能做到这一点?

标签: pandas

解决方案


np.arange按长度创建df并使用整数除法5并将其传递给groupby函数:

df = df.groupby(np.arange(len(df)) // 5).pct_change()
print (df)
         xx
A       NaN
B  0.333333
C -0.750000
D  4.000000
E  0.400000
F       NaN
G -0.500000
H  0.666667
I  0.600000
J -0.375000

推荐阅读