在R / dplyr中,我可以做到
summarise(iris, max_width=max(Sepal.Width), min_width=min(Sepal.Width))
并获得:
max_width min_width
1 4.4 2
pandas中有类似summarise
的内容吗?我知道describe()
,但我希望结果只包含给定列的给定摘要统计信息,而不是所有列的所有摘要统计信息。在大熊猫中,iris.describe()
给出:
sepal_length sepal_width petal_length petal_width
count 150.000000 150.000000 150.000000 150.000000
mean 5.843333 3.057333 3.758000 1.199333
std 0.828066 0.435866 1.765298 0.762238
min 4.300000 2.000000 1.000000 0.100000
25% 5.100000 2.800000 1.600000 0.300000
50% 5.800000 3.000000 4.350000 1.300000
75% 6.400000 3.300000 5.100000 1.800000
max 7.900000 4.400000 6.900000 2.500000
答案 0 :(得分:1)
从版本0.20开始,agg
也可以在DataFrame上调用source)。
所以你可以这样做:
iris.agg({'sepal_width': 'min', 'petal_width': 'max'})
petal_width 2.5
sepal_width 2.0
dtype: float64
iris.agg({'sepal_width': ['min', 'median'], 'sepal_length': ['min', 'mean']})
sepal_length sepal_width
mean 5.843333 NaN
median NaN 3.0
min 4.300000 2.0
另见dplyr summarize equivalent in pandas。那个人专注于groupby操作。
答案 1 :(得分:0)
对于你的问题: 是的,有。
>>> from datar.all import f, summarise, max, min
>>> from datar.datasets import iris
>>>
>>> summarise(iris, max_width=max(f.Sepal_Width), min_width=min(f.Sepal_Width))
max_width min_width
<float64> <float64>
0 4.4 2.0
我是 datar
软件包的作者。