Pandas ValueError:函数不会减少

时间:2016-05-17 13:26:01

标签: python pandas dataframe group-by

我一直在尝试使用pandas groupby来分析数据,然后我在从0.15.0到0.18.1的更新pandas之后遇到了一个问题。

我想计算'equality'的值为1的连续周期数(它只能取值0或1)。我定义了followin lambda函数,并使用groupby命令如下:

.foo-on > .bar-on {visibility: visible;}
.foo-on > .bar-off {visibility: hidden;}
.foo-off > .bar-off {visibility: visible;}
.foo-off > .bar-on {visibility: hidden;}

但收到了最后一行代码的错误消息:

    import pandas as pd
    E = lambda x: np.sum(x.diff()==1) + x.head(1)

    grouped = df.groupby(['run_'])
    agg_data = grouped[['equality','avg_payoff']].mean()
    agg_data['E'] = grouped.equality.agg(E) # number of "equality" epochs

这个代码在更新之前运行完美,这很奇怪。这不是我第一次在更新科学计算软件包后遇到问题,这让我有点沮丧。有人可以帮忙解决这个问题吗?或者我必须回滚到旧版本......

1 个答案:

答案 0 :(得分:1)

x.head(1)返回系列(有一行但是系列)。 你可以像这样做一个愚蠢的解决方法

E = lambda x: np.sum(x.diff()==1) + np.sum(x.head(1))

或者更聪明一点

E = lambda x: np.sum(x.diff()==1) + x.iloc[0]