首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复制一列但忽略第一行,pandas dataframe

复制一列但忽略第一行,pandas dataframe
EN

Stack Overflow用户
提问于 2019-12-12 17:33:24
回答 2查看 226关注 0票数 0

我想在另一个列的基础上创建一个新列,但我想忽略第一个值,并从第二个值开始复制,以便创建一个新列,在该列中我减去以前的值。我正在尝试创建此代码来比较两个日期时间,并检查这两个值之间需要多少时间(这两个值是日期时间,以秒/分钟为单位会有所不同)。

即代码:

代码语言:javascript
复制
Column1 New_column    Substraction
18:30   18:45         18:45 - 18:30 = 0:15
18:45   19:45         19:45 - 18:45 = 1:00
19:45   20:15         20:15 - 19:45 = 0:30
20:15   etc.

我会说它基本上是复制Column1到另一个,但是移动索引,第二列的第一个索引(索引0)必须是第一列的第二个索引(索引1)。如果我没有很好地解释,很抱歉,我正在努力提高我的英语水平。

提前感谢!

EN

回答 2

Stack Overflow用户

发布于 2019-12-12 17:38:35

您可以按照问题中的定义,使用pandas.DataFrame.diff将先前的值相减

示例:

代码语言:javascript
复制
>>> import pandas as pd
>>> df =  df = pd.DataFrame({'a': [1, 2, 3, 4, 5, 6],'b':[6,5,4,3,2,1]})
>>> df
   a  b
0  1  6
1  2  5
2  3  4
3  4  3
4  5  2
5  6  1
>>> df.a.diff()
0    NaN
1    1.0
2    1.0
3    1.0
4    1.0
5    1.0
Name: a, dtype: float64
票数 0
EN

Stack Overflow用户

发布于 2019-12-12 17:43:22

将列转换为datetime并查找下一列的差异(shift)

代码语言:javascript
复制
df['Column1'] = pd.to_datetime(df['Column1'], format='%H:%M')
df['substaction'] = df['Column1'].shift(-1) - df['Column1']
df['Column1'] = df['Column1'].dt.strftime('%H:%M')
df

这将给出以下输出

代码语言:javascript
复制
    Column1     substaction
0   18:30   00:15:00
1   18:45   01:00:00
2   19:45   00:30:00
3   20:15   NaT
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59301496

复制
相关文章

相似问题

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