每n行熊猫分组模式

时间:2019-11-29 20:24:45

标签: python pandas group-by

我有一个熊猫df,我试图每3行进行分组,并获取模式。我该怎么办?

示例:

time                       a                       b
0                          0.5                    -2.0
1                          0.5                    -2.0
2                          0.1                    -1.0
3                          0.1                    -1.0
4                          0.1                    -1.0
5                          0.5                    -1.0
6                          0.5                    -1.0
7                          0.5                    -3.0
8                          0.5                    -1.0

应该是:

time                       a                       b
2                          0.5                    -2.0
5                          0.1                    -1.0
8                          0.5                    -1.0

2 个答案:

答案 0 :(得分:2)

您可以使用function ForceDirectories(FullPath: string): Boolean; // Works with UNC paths begin TDirectory.CreateDirectory(FullPath); Result:= DirectoryExists(FullPath); end; groupby

mode

在某些情况下,这里的输出可能与您的预期输出有所不同。

我还应该提到,您可能不希望对非分类数据(包括浮点数据)使用模式。请考虑先对列进行因子分解,否则由于浮点数不正确,结果可能不正确。

答案 1 :(得分:0)

您可以使用mode模块中的函数statistics进行聚合:

from statistics import mode

df.groupby(np.arange(len(df)) // 3).agg({'time': 'last', 'a': mode, 'b': mode})

输出:

   time    a    b
0     2  0.5 -2.0
1     5  0.1 -1.0
2     8  0.5 -1.0

在Python 3.8中,mode返回遇到的第一个模式。以前,当发现多个模式时,它会引发StatisticsError