我正在寻找一种在pandas df上进行逐行减法的简单方法。我能找到的最接近的是df.shift(1),它只适用于日期时间。所以,如果我有一个数据框
df['col'] = [1,2,3,4,5]
是否有内置方法允许我进行逐元素减法,以便通过从左边的每个元素中减去它来返回以下内容。第一个元素将保持不变。
sd['col'] = [1, 1, 1, 1, 1]
是否有现成的方法可以执行此操作,还是我必须自己编写代码?
答案 0 :(得分:2)
在你的评论中写下
第一个值是正确的。后续值将被减去。
因此,假设您要将差异放在名为diff
的列中。然后你可以做
df['diff'] = df['col'].diff()
(使用pd.DataFrame.diff
),这将在除第一个之外的每个条目中放置差异。您可以使用
df['diff'].values[0] = df['col'].values[0]