小编mc5*_*c51的帖子

确定分组数据框中值的变化

假设有一个像这样的数据集(最初是从 .csv 读取的):

data = pd.DataFrame({'id': [1,2,3,1,2,3],
                     'time':['2017-01-01 12:00:00','2017-01-01 12:00:00','2017-01-01 12:00:00',
                          '2017-01-01 12:10:00','2017-01-01 12:10:00','2017-01-01 12:10:00'],
                     'value': [10,11,12,10,12,13]})
Run Code Online (Sandbox Code Playgroud)

=>

    id  time                    value
0   1   2017-01-01 12:00:00     10
1   2   2017-01-01 12:00:00     11
2   3   2017-01-01 12:00:00     12
3   1   2017-01-01 12:10:00     10
4   2   2017-01-01 12:10:00     12
5   3   2017-01-01 12:10:00     13
Run Code Online (Sandbox Code Playgroud)

每个观察周期内所有 ID 的时间都是相同的。该系列以这种方式进行多次观察,即每十分钟一次。

value我想要连续时间之间按 id 列出的列中的总更改数。例如:对于 id=1,没有变化(结果:0)。对于 id=2,有一项更改(结果:1)。受这篇文章的启发,我尝试采取差异: Determingwhen a column valuechanges in pandas dataframe

这是我到目前为止所提出的(没有按预期工作):

data = data.set_index(['id', 'time']) # MultiIndex 
grouped = data.groupby(level='id') 
data['diff'] = grouped['value'].diff() …
Run Code Online (Sandbox Code Playgroud)

python group-by dataframe pandas pandas-groupby

2
推荐指数
1
解决办法
2092
查看次数

标签 统计

dataframe ×1

group-by ×1

pandas ×1

pandas-groupby ×1

python ×1