gpt4 book ai didi

python - 每组相邻列内的连续差异

转载 作者:行者123 更新时间:2023-12-01 08:04:26 25 4
gpt4 key购买 nike

我的文件只有几列。为简单起见,我在下面显示前三组(A1、A2 和 A3):

Column1 Column2 Column3 
A1 45 50
A1 70 90
A1 100 150
A2 500 510
A2 550 600
A3 1000 1100

我想分别获取每组最后两列的连续差异。以及每组这些连续差异的平均值。

预期输出为:

Column1 Column2 Column3 Column4        Column5
A1 45 50 70-50 = 20
A1 70 90 100-90 = 10 15
A1 100 150
A2 500 510 550-510 = 40
A2 550 600
A3 1000 1100

在这里,我将数据保存到数据框中并尝试获得预期的输出。

我的代码如下:

df[output]= ([((float(df['Column3']) - float(df['Column2'].shift(-1)))*-1)/float(len(report_map1[i]))])

我想知道他们是否有更简单的方法来获得预期的结果?

最佳答案

使用DataFrameGroupBy.shift减去列Column3:

df['Column4'] =  df.groupby('Column1')['Column2'].shift(-1) - df['Column3']
#if necessary convert to floats
#df['Column4'] = (df.groupby('Column1')['Column2'].shift(-1).astype(float) -
# df['Column3'].astype(float))
print (df)
Column1 Column2 Column3 Column4
0 A1 45 50 20.0
1 A1 70 90 10.0
2 A1 100 150 NaN
3 A2 500 510 40.0
4 A2 550 600 NaN
5 A3 1000 1100 NaN

关于python - 每组相邻列内的连续差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55605420/

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