简体   繁体   English

Python根据不同的行创建新的数据框列

[英]Python create new dataframe column based on different rows

So I am having dataframe which looks like this所以我有看起来像这样的数据框

       v1   v2
day1   x    x
day2   x    x
day3   x    x
day4   x    x
day5   x    x

What I need is to add new column v3 which will be the difference "today's v1 - yesterday's v2"我需要的是添加新列 v3,这将是“今天的 v1 - 昨天的 v2”的区别

I've tried df[v3] = df[v1][1:] - df[v2][:-1]我试过df[v3] = df[v1][1:] - df[v2][:-1]

But it looks like python is somehow mapping rows by timestamp and I am receiving "today's v1 - today's v2" as result except for first and last rows which are NaN.但看起来python以某种方式按时间戳映射行,我收到“今天的v1 - 今天的v2”作为结果,除了第一行和最后一行是NaN。

IIUC,随着您的日子单调增加,您可以通过v2.shift()减去v1

df['v3'] = df.v1 - df.v2.shift()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM