2016-05-13 75 views
2

在R/dplyr,我可以做dplyr :: summarize有熊貓的等價物嗎?

summarise(iris, max_width=max(Sepal.Width), min_width=min(Sepal.Width)) 

,並得到:

max_width min_width 
1  4.4   2 

是否有大熊貓類似的東西來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

Dupe:http://stackoverflow.com/questions/22235245/calculate-summary-statistics-of-columns-in-dataframe/22235393#22235393,基本上['describe'](http://pandas.pydata。 org/pandas-docs/stable/generated/pandas.DataFrame.describe.html)是等效的,所以在你的情況下,你可以通過傳遞一個cols列表來爲子集選擇'iris [list_of_cols] .describe )'或'iris ['sepal_length']。describe()'會給你那個列的統計信息 – EdChum

+0

如果你只是在特定的統計信息之後,你可以給它們編制索引iris ['sepal_width']。describe()。loc [ ['min','max']]' – EdChum

+0

如果你只想做這些計算,你也可以直接執行'pd.Series(dict(max_width = iris.sepal_width.max(),min_width = iris.sepal_width.min ()))'得到幾乎與dplyr相同的輸出。 – joris

回答

1

隨着0.20版本,agg可以DataFrames太(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的運營。