首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python -绝对相对时间

python -绝对相对时间
EN

Stack Overflow用户
提问于 2019-06-17 11:32:15
回答 1查看 347关注 0票数 1

我的熊猫DataFrame有下面的当前结构

代码语言:javascript
复制
{
'Temperature': [1,2,3,4,5,6,7,8,9],
'machining': [1,1,1,2,2,2,3,3,3],
'timestamp': [1560770645,1560770646,1560770647,1560770648,1560770649,1560770650,1560770651,1560770652,1560770653]
}

我想添加一列与每个加工过程的相对时间,以便它刷新每一列‘加工’改变其价值。

因此,所需的结构是:

代码语言:javascript
复制
{
'Temperature': [1,2,3,4,5,6,7,8,9],
'machining': [1,1,1,2,2,2,3,3,3],
'timestamp': [1560770645,1560770646,1560770647,1560770648,1560770649,1560770650,1560770651,1560770652,1560770653]
'timestamp_machining': [1,2,3,1,2,3,1,2,3]
}

我正努力用一种干净的方式来做这件事:如果需要的话,没有熊猫的帮助也会很感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-17 11:35:26

减去GroupBy.transform创建的每个组的第一个值

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

print (df.groupby('machining')['timestamp'].transform('first'))
0    1560770645
1    1560770645
2    1560770645
3    1560770648
4    1560770648
5    1560770648
6    1560770651
7    1560770651
8    1560770651
Name: timestamp, dtype: int64

df['new'] = df['timestamp'].sub(df.groupby('machining')['timestamp'].transform('first')) + 1
print (df)

   Temperature  machining   timestamp  timestamp_machining  new
0            1          1  1560770645                    1    1
1            2          1  1560770646                    2    2
2            3          1  1560770647                    3    3
3            4          2  1560770648                    1    1
4            5          2  1560770649                    2    2
5            6          2  1560770650                    3    3
6            7          3  1560770651                    1    1
7            8          3  1560770652                    2    2
8            9          3  1560770653                    3    3

如果只需要计数器,那么GroupBy.cumcount就是您的朋友:

代码语言:javascript
复制
df['new'] = df.groupby('machining').cumcount() + 1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56630432

复制
相关文章

相似问题

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