我有一个格式为 226 列的 pandas 数据框:**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条经验 获得超11个赞
使用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
素胚勾勒不出你
TA贡献1827条经验 获得超9个赞
要创建“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]
添加回答
举报
0/150
提交
取消