首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python -创建Change列

Python -创建Change列
EN

Stack Overflow用户
提问于 2017-10-19 05:10:48
回答 1查看 232关注 0票数 1

我有一个具有这个列名的数据帧。

代码语言:javascript
复制
timestamp,stockname,total volume traded

每个时间段都有多个股票名称。

代码语言:javascript
复制
11:00,A,100
11:00,B,500
11:01,A,150
11:01,B,600
11:02,A,200
11:02,B,650

我想创建一个ChangeInVol列,这样每个股票都有自己的差异,如

代码语言:javascript
复制
timestamp, stock,total volume, change in volume
11:00,A,100,NaN
11:00,B,500,NAN
11:01,A,150,50
11:01,B,600,100
11:02,A,200,50
11:03,B,650,50

如果是一只股票,我就可以

代码语言:javascript
复制
df['ChangeVol'] = df['TotalVol'] - df['TotalVol'].shift(1)

但是有很多种股票

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-19 05:13:00

需要sort_values + DataFrameGroupBy.diff

代码语言:javascript
复制
#if columns not sorted
df = df.sort_values(['timestamp','stockname'])

df['change in volume'] = df.groupby('stockname')['total volume traded'].diff()
print (df)
  timestamp stockname  total volume traded  change in volume
0     11:00         A                  100               NaN
1     11:00         B                  500               NaN
2     11:01         A                  150              50.0
3     11:01         B                  600             100.0
4     11:02         A                  200              50.0
5     11:02         B                  650              50.0
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46823175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档