首页 > 解决方案 > 在熊猫数据框中按组计算计数特征

问题描述

我有以下数据集:

import pandas as pd
from datetime import datetime
import numpy as np

date_rng = pd.date_range(start='2020-07-01', end='2020-07-10', freq='d')
l1 = [np.nan, np.nan, "local_max", np.nan, np.nan, "local_min", np.nan, np.nan, "local_max", np.nan]
l2 = [np.nan, np.nan, "local_max", np.nan, np.nan, "local_min", np.nan, np.nan, "local_max", "local_min"]

df = pd.DataFrame({
    'date':date_rng,
    'value':l1,
    'group':'a'
})
df2 = pd.DataFrame({
    'date':date_rng,
    'value':l1,
    'group':'b'
})

df = df.append(df2, ignore_index=True)

我想计算特征,例如每组的 local_min 和 local_max 计数,并将其保存在具有所需输出的新数据框中:

我能够计算特征,但未能以优雅的方式将其应用于组:

columns = ["group", "local_min", "local_max"]

df_features = pd.DataFrame([["a", 1, 2],
                            ["b", 1, 3],],
                  columns=columns)
df_features

任何帮助将非常感激!

标签: pythonpandasdataframe

解决方案


df.groupby作品:

df.groupby(['group','value']).count()

输出:

                 date
group value          
a     local_max     2
      local_min     1
b     local_max     2
      local_min     1

推荐阅读