熊猫:将值的时间序列转换为跟踪值的变化

西蒙·R

我对此感到困惑,而且-毫无特色-互联网几乎无济于事。我在Pandas工作,但是对于那些旨在有效存储时间序列数据的人们来说,这一定是一个普遍的问题。

我有很多标准的每日时间序列数据,这些值恰巧不经常更改,如下所示:

Date Value 01/02/2014 .1 01/03/2014 .1 01/04/2014 .5 01/05/2014 .5 01/06/2014 .5 01/07/2014 .1

我会将数据转换为仅跟踪值更改的日期,因此上面的示例现在应如下所示:

Date Value 01/02/2014 .1 01/04/2014 .5 01/07/2014 .1

不幸的是drop_duplicates(),在将值恢复为先前值的情况下(例如,在上面的示例中为.1),使用类似这样的操作会删除所需的值。

埃德·楚姆

使用的组合shiftall

In [98]:

import io
temp = """Date,Value
01/02/2014,.1
01/03/2014,.1
01/04/2014,.5
01/05/2014,.5
01/06/2014,.5
01/07/2014,.1"""
df = pd.read_csv(io.StringIO(temp))
df
Out[98]:
         Date  Value
0  01/02/2014    0.1
1  01/03/2014    0.1
2  01/04/2014    0.5
3  01/05/2014    0.5
4  01/06/2014    0.5
5  01/07/2014    0.1

In [99]:

df.loc[(df.shift() != df).all(axis=1)]
Out[99]:
         Date  Value
0  01/02/2014    0.1
2  01/04/2014    0.5
5  01/07/2014    0.1

在这里,我们将经过移位的(按1行)数据帧与原始数据帧进行比较,然后我们想要比较每一列,并使用all并传递axis=1以实现此目的。

如果进一步看一下df.shift() != df返回值,则进一步细分

In [100]:

df.shift() != df
Out[100]:
   Date  Value
0  True   True
1  True  False
2  True   True
3  True  False
4  True  False
5  True   True

我们得到一个带有布尔值的数据框,但是我们不能照原样使用它作为掩码,我们要检查所有行是否都被True使用所以我们使用all

In [101]:

(df.shift() != df).all()
Out[101]:
Date      True
Value    False
dtype: bool

但是,默认情况下,它会检查列是否为all True,我们要检查行值,所以我们通过axis=1

In [102]:

(df.shift() != df).all(axis=1)
Out[102]:
0     True
1    False
2     True
3    False
4    False
5     True
dtype: bool

现在,我们可以将其用作布尔掩码来实现我们想要的功能:

In [103]:

df.loc[(df.shift() != df).all(axis=1)]
Out[103]:
         Date  Value
0  01/02/2014    0.1
2  01/04/2014    0.5
5  01/07/2014    0.1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

熊猫:将值的时间序列转换为跟踪值的变化

来自分类Dev

将熊猫中的时间列从浮点转换为实际时间值

来自分类Dev

熊猫将时间序列数据列转换为列表列?

来自分类Dev

将值转换为日期时间

来自分类Dev

将时间戳转换为长值

来自分类Dev

将日期时间值转换为下限

来自分类Dev

将 TimeOfLastReset 的值转换为日期时间

来自分类Dev

熊猫:将列中所有值的时间转换为秒

来自分类Dev

将时代列值转换为熊猫数据框中的时间

来自分类Dev

熊猫根据列值将UNIX时间转换为多个不同的时区

来自分类Dev

熊猫将列值转换为行值

来自分类Dev

SQL Server:将 int 值转换为时间值

来自分类Dev

将超声时间跟踪转换为.wav

来自分类Dev

如何将循环时间序列熊猫数据帧转换为熊猫多索引数据帧

来自分类Dev

将具有奇异时间戳的数据帧转换为具有熊猫的时间序列

来自分类Dev

将具有奇异时间戳的数据帧转换为具有熊猫的时间序列

来自分类Dev

使用NaN值将熊猫系列转换为int

来自分类Dev

大熊猫将索引值转换为小写

来自分类Dev

将行转换为熊猫列中的值列表

来自分类Dev

将熊猫数据框值组转换为多个列表

来自分类Dev

熊猫-将值转换为类型字符串以浮动

来自分类Dev

如何将熊猫数据框的值转换为列

来自分类Dev

将布尔值转换为数据框熊猫

来自分类Dev

旋转熊猫 df - 将列值转换为列名

来自分类Dev

将标题和值列表转换为熊猫数据框

来自分类Dev

将序列值转换为Perl中的日期

来自分类Dev

将Python序列转换为NumPy数组,填充缺失值

来自分类Dev

将序列值转换为Perl中的日期

来自分类Dev

将值替换为该值除以熊猫中该值存在的时间数

Related 相关文章

热门标签

归档