Определите следующую функцию (с другой функцией внутри):
def myFun(grp):
def myDiff(col1, col2):
return col1.iloc[0] - col2
return pd.DataFrame({'Lon_diff': myDiff(grp.Lon_s, grp.HLON_cv),
'Lat_diff': myDiff(grp.Lat_s, grp.HLAT_cv)})
Генерирует DataFrame, состоящий из 2 столбцов: Lon_diff и Lat_diff , каждый с соответствующая разница.
Затем присоедините результат применения этой функции к исходному кадру данных:
result = df.join(df.groupby('Date').apply(myFun))
Результат:
Date Lon_s Lat_s HLON_cv HLAT_cv Lon_diff Lat_diff
0 1853-11-09 31.0 -10.4 293.85 5.20 -262.85 -15.60
1 1853-11-09 302.3 3.6 290.15 4.90 -259.15 -15.30
2 1853-12-01 85.5 -7.5 84.62 -6.88 0.88 -0.62
3 1853-12-01 85.5 -7.5 78.20 -6.83 7.30 -0.67
4 1853-12-01 88.0 -8.6 84.62 -6.88 0.88 -0.62
5 1853-12-01 88.0 -8.6 78.20 -6.83 7.30 -0.67
6 1853-12-01 86.6 -7.8 84.62 -6.88 0.88 -0.62
7 1853-12-01 86.6 -7.8 78.20 -6.83 7.30 -0.67