小编Bri*_*ack的帖子

Python Pandas:使用groupby()和agg()时是否保留了顺序?

我经常使用用过的pandas agg()函数来对data.frame的每一列运行汇总统计.例如,以下是产生均值和标准差的方法:

df = pd.DataFrame({'A': ['group1', 'group1', 'group2', 'group2', 'group3', 'group3'],
                   'B': [10, 12, 10, 25, 10, 12],
                   'C': [100, 102, 100, 250, 100, 102]})

>>> df
[output]
        A   B    C
0  group1  10  100
1  group1  12  102
2  group2  10  100
3  group2  25  250
4  group3  10  100
5  group3  12  102
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,将各行发送到agg函数的顺序无关紧要.但请考虑以下示例,其中:

df.groupby('A').agg([np.mean, lambda x: x.iloc[1] ])

[output]

        mean  <lambda>  mean  <lambda>
A                                     
group1  11.0        12   101       102
group2  17.5        25   175       250
group3  11.0 …
Run Code Online (Sandbox Code Playgroud)

python aggregate pandas

28
推荐指数
4
解决办法
1万
查看次数

Python Pandas:使用Arguments将多个函数传递给agg()

我正在努力弄清楚如何为pandas的dataframe.agg()功能组合两种不同的语法.拿这个简单的数据框:

df = pd.DataFrame({'A': ['group1', 'group1', 'group2', 'group2', 'group3', 'group3'],
                   'B': [10, 12, 10, 25, 10, 12],
                   'C': [100, 102, 100, 250, 100, 102]})

>>> df
[output]
        A   B    C
0  group1  10  100
1  group1  12  102
2  group2  10  100
3  group2  25  250
4  group3  10  100
5  group3  12  102
Run Code Online (Sandbox Code Playgroud)

我知道你可以发送两个函数agg()并获得一个新的数据框,其中每个函数都应用于每一列:

df.groupby('A').agg([np.mean, np.std])

[output]
           B                C            
        mean        std  mean         std
A                                        
group1  11.0   1.414214   101    1.414214
group2  17.5  10.606602   175  106.066017
group3 …
Run Code Online (Sandbox Code Playgroud)

python pandas

11
推荐指数
1
解决办法
3209
查看次数

在iPython/pandas中绘制多行产生多个图

我试图了解matplotlib的状态机模型,但是在尝试在单个绘图上绘制多条线时遇到错误.根据我的理解,下面的代码应该生成一个包含两行的图:

import pandas as pd
import pandas.io.data as web
aapl = web.get_data_yahoo('AAPL', '1/1/2005')

# extract adjusted close
adj_close = aapl.loc[:, ['Adj Close']]

# 2 lines on one plot
hold(False)
adj_close.resample('M', how='min').plot()
adj_close.resample('M', how='max').plot()
Run Code Online (Sandbox Code Playgroud)

事实上,我得到三个数字:首先是空白数字,然后是两个数字,每个数字一行.

空白情节 第一个情节 第二个情节

知道我做错了什么或我的系统上的设置可能配置错误了吗?

python matplotlib pandas

5
推荐指数
1
解决办法
9140
查看次数

标签 统计

pandas ×3

python ×3

aggregate ×1

matplotlib ×1