有没有办法省略熊猫描述的一些输出?这个命令给了我我想要的表输出(simpleDate的countTime和count的平均值)
df.groupby('simpleDate').executeTime.describe().unstack(1)
Run Code Online (Sandbox Code Playgroud)
然而,这就是我想要的,数数和意思.我想删除std,min,max等...到目前为止,我只阅读了如何修改列大小.
我猜的答案是重写这行,而不是使用describe,但是我没有运行simpleDate的运气分组,并且在executeTime上得到了计数.
我可以按日期计算:
df.groupby(['simpleDate']).size()
Run Code Online (Sandbox Code Playgroud)
或按日期执行时间:
df.groupby(['simpleDate']).mean()['executeTime'].reset_index()
Run Code Online (Sandbox Code Playgroud)
但无法弄清楚将它们组合起来的语法.
我想要的输出:
count mean
09-10-2013 8 20.523
09-11-2013 4 21.112
09-12-2013 3 18.531
... .. ...
Run Code Online (Sandbox Code Playgroud)
Jef*_*eff 22
描述返回一个系列,所以你可以选择你想要的
In [6]: s = Series(np.random.rand(10))
In [7]: s
Out[7]:
0 0.302041
1 0.353838
2 0.421416
3 0.174497
4 0.600932
5 0.871461
6 0.116874
7 0.233738
8 0.859147
9 0.145515
dtype: float64
In [8]: s.describe()
Out[8]:
count 10.000000
mean 0.407946
std 0.280562
min 0.116874
25% 0.189307
50% 0.327940
75% 0.556053
max 0.871461
dtype: float64
In [9]: s.describe()[['count','mean']]
Out[9]:
count 10.000000
mean 0.407946
dtype: float64
Run Code Online (Sandbox Code Playgroud)
Raf*_*afa 17
.describe()属性生成一个数据框,其中count,std,max ...是索引的值,因此根据您应该使用的文档,例如:
df.describe().loc[['count','max']]
Run Code Online (Sandbox Code Playgroud)
查看答案,我没有看到在使用 groupby() 后实际上对从 describe() 返回的 DataFrame 有效的答案。
MultiIndex selection的文档给出了答案的提示。.xs() 函数适用于一项但不适用于多项选择,但 .loc 有效。
df.groupby(['simpleDate']).describe().loc[:,(slice(None),['count','max'])]
Run Code Online (Sandbox Code Playgroud)
这保留了 .describe() 返回的漂亮 MultiIndex 但只选择了列。
@Jeff 提供的解决方案仅适用于系列。
@Rafa 说到点子上了:df.describe().info()揭示结果数据帧有Index: 8 entries, count to max
df.describe().loc[['count','max']]确实有效,但是df.groupby('simpleDate').describe().loc[['count','max']],这是 OP 所要求的,不起作用。
我认为一个解决方案可能是这样的:
df = pd.DataFrame({'Y': ['A', 'B', 'B', 'A', 'B'],
'Z': [10, 5, 6, 11, 12],
})
Run Code Online (Sandbox Code Playgroud)
将 df 分组为Y:
df_grouped=df.groupby(by='Y')
In [207]df_grouped.agg([np.mean, len])
Out[207]:
Z
mean len
Y
A 10.500 2
B 7.667 3
Run Code Online (Sandbox Code Playgroud)