我有一個格式為 226 列的 pandas 數(shù)據(jù)框:**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)..... 我該怎么做呢?我是python的菜鳥,在此先感謝
2 回答

呼喚遠方
TA貢獻1856條經(jīng)驗 獲得超11個贊
使用DataFrame.diff并在必要時將第一列轉(zhuǎn)換為索引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

素胚勾勒不出你
TA貢獻1827條經(jīng)驗 獲得超9個贊
要創(chuàng)建“W”作為您可以執(zhí)行的索引,
df.set_index('W', inplace=True)
此外,您可以嘗試以下方法:
for i in range(len(df.columns) - 1): df.iloc[:, i] = df.iloc[:, i] - df.iloc[:, i+1]
添加回答
舉報
0/150
提交
取消