У меня есть pandas формат данных с 226 столбцами:
**W X Y Z.....** a b c d..... e f g h.....
Я хочу вычесть столбцы Y и Z следующим образом:
**W X Y Z.....** a (b-c) (c-d) (d-nextvalue)..... e (f-g) (g-h) (h-nextvalue).....
как мне go об этом? Я ладья ie в python, заранее спасибо
Используйте DataFrame.diff и при необходимости преобразуйте первый столбец в индекс как DataFrame.set_index:
DataFrame.diff
DataFrame.set_index
df = pd.DataFrame({ 'W':list('abc'), 'X':[10,5,4], 'Y':[7,8,9], 'Z':[1,1,0], 'E':[5,3,6], }) df = df.set_index('W').diff(-1, axis=1) print (df) X Y Z E W a 3.0 6.0 -4.0 NaN b -3.0 7.0 -2.0 NaN c -5.0 9.0 -6.0 NaN
Чтобы создать 'W' в качестве индекса, который вы можете сделать,
df.set_index('W', inplace=True)
Далее, вы можете попробовать следующее:
for i in range(len(df.columns) - 1): df.iloc[:, i] = df.iloc[:, i] - df.iloc[:, i+1]