Добавление количества к df, произведенному групповым сокращением - PullRequest
1 голос
/ 18 апреля 2019

Ни .size(), ни .count(), по-видимому, не выдают ни одного столбца подсчета, когда применяется к данным, полученным методом .cut().

Это может быть только проблема синтаксиса, но я попытался .size(), .count() и .describe() и получить несколько столбцов с количеством групп, но не один столбец.

#python 2.7
import pandas as pd
import numpy as np


np.random.seed(seed=1)
df = pd.DataFrame({"var1": np.random.random(100), 
                   "var2": np.random.random(100) + 5})

# Bin the data frame by "var1" with 10 bins...
df = df.groupby(pd.cut(df.var1, 10)).describe().var2[['mean','count']]
df =df.reset_index()
print df"

#Results:
                     var1      mean  count
0  (-0.000874, 0.099]  5.546257   11.0
1      (0.099, 0.198]  5.434613   12.0
2      (0.198, 0.297]  5.483686    9.0
3      (0.297, 0.396]  5.313241    6.0
4      (0.396, 0.494]  5.537168   13.0
5      (0.494, 0.593]  5.518476   10.0
6      (0.593, 0.692]  5.614630   10.0
7      (0.692, 0.791]  5.443415   10.0
8       (0.791, 0.89]  5.464804    7.0
9       (0.89, 0.989]  5.418756   12.0

# В обновленный вопрос добавлен код, обеспечивающий желаемый ответ.

1 Ответ

2 голосов
/ 18 апреля 2019

Если это так, вам нужно transform с pd.Series.groupby()

df['cnt']=df.groupby(pd.cut(df.var1, 10))['var2'].transform('count')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...