小编Bri*_*ien的帖子

将函数应用于pandas dataframe groupby中的第二列

在pandas数据帧中,可以使用函数对其索引进行分组.我正在寻找一个代替应用于列的函数.

我想要分两列,除了我需要第二列按任意函数分组,foo:

group_sum = df.groupby(['name', foo])['tickets'].sum()
Run Code Online (Sandbox Code Playgroud)

如何foo定义如何将第二列分为两组,> 0例如,是否按值划分?或者,使用完全不同的方法或语法?

python dataframe pandas

8
推荐指数
1
解决办法
806
查看次数

熊猫在数据框中向后插入()

展望未来,interpolate效果很好:

       name    days
0      a       NaN
1      a       NaN
2      a         2
3      a         3
4      a       NaN 
5      a       NaN  

records.loc[:, 'days'].interpolate(method='linear', inplace=True)

       name    days
0      a       NaN
1      a       NaN
2      a         2
3      a         3
4      a         4 
5      a         5  
Run Code Online (Sandbox Code Playgroud)

...但是,它不处理起始行(仅向前)。该limit_directionPARAM允许{‘forward’, ‘backward’, ‘both’}。这些都不起作用。有没有正确的方法来向后插值?

我们可以假设一个序列递增或递减 1,它可能不会像在这个例子中那样从 0 开始。

python dataframe pandas

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

带有groupby的pandas数据框滚动窗口

我可以添加一个新列c,该列是最后两个值的和b,如下所示...

df['c'] = df.b.rolling(window = 2).sum().shift()

df
    a   b     c
0   1   3   NaN
1   1   0   NaN
2   0   6   3.0
3   1   0   6.0
4   0   0   6.0
5   1   7   0.0
6   0   0   7.0
7   0   7   7.0
8   1   4   7.0
9   1   2   11.0
Run Code Online (Sandbox Code Playgroud)

...但是,如果我想先分组a怎么办?例如,我可以这样做:

df['c'] = df.groupby(['a'])['b'].shift(1) + df.groupby(['a'])['b'].shift(2)

是否有一种更优雅的方法来汇总一组中的大量班次(1、2,... n)?

python dataframe pandas

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

标签 统计

dataframe ×3

pandas ×3

python ×3