Python 将计数添加到由group by cut生成的df
无论是Python 将计数添加到由group by cut生成的df,python,pandas,count,pandas-groupby,Python,Pandas,Count,Pandas Groupby,无论是.size()还是.count()似乎都不会在 应用于使用.cut()方法生成的数据 这可能只是语法问题,但我尝试了.size()、.count()和.description()并使用组计数获取多个列,但不是一个列 #python 2.7 import pandas as pd import numpy as np np.random.seed(seed=1) df = pd.DataFrame({"var1": np.random.random(100),
.size()
还是.count()
似乎都不会在
应用于使用.cut()
方法生成的数据
这可能只是语法问题,但我尝试了.size()
、.count()
和.description()
并使用组计数获取多个列,但不是一个列
#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
#使用提供所需答案的代码更新发布的问题。如果是这种情况,则需要使用
pd.Series.groupby()转换
不确定您需要什么我想在df中添加一列“cnt”,显示每个箱子中用于计算平均值的项目数,如“var2”所示。
df['cnt']=df.groupby(pd.cut(df.var1, 10))['var2'].transform('count')