本文介绍了 pandas :重新采样数据框列,获取对应于最大值的离散特征的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

样本数据:

import pandas as pd
import numpy as np
import datetime

data = {'value': [1,2,4,3], 'names': ['joe', 'bob', 'joe', 'bob']}
start, end = datetime.datetime(2015, 1, 1), datetime.datetime(2015, 1, 4)
test = pd.DataFrame(data=data, index=pd.DatetimeIndex(start=start, end=end,
       freq="D"), columns=["value", "names"])

给予:

          value names
2015-01-01  1   joe
2015-01-02  2   bob
2015-01-03  4   joe
2015-01-04  3   bob

我想通过'2D'重新采样并获得最大值,例如:

I want to resample by '2D' and get the max value, something like:

df.resample('2D')

预期结果应该是:

          value names
 2015-01-01 2   bob
 2015-01-03 4   joe

有人可以帮助我吗?

推荐答案

您可以重新采样以获取值的arg max,然后使用它来提取名称和值

You can resample to get the arg max of value and then use it to extract names and value

(df.resample('2D')[['value']].idxmax()
   .assign(names=lambda x: df.loc[x.value]['names'].values,
           value=lambda x: df.loc[x.value]['value'].values)
)
Out[116]:
            value names
2015-01-01      2   bob
2015-01-03      4   joe

这篇关于 pandas :重新采样数据框列,获取对应于最大值的离散特征的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-17 21:05