如何对 pandas 列中的值进行重采样?

How to resample value in pandas column?

我知道时间序列数据的重采样函数。我想要在包含 3000 个示例的普通专栏中使用类似的东西。我想保持长度。我希望每一行都具有 n- long window.

中最后一次出现的值

我也知道分组依据和最后一个函数,但这里我是根据长度而不是某个值进行分组。

我想要非重叠 windows,所以滚动也没有帮助。

尺寸三的 window 示例:

0         sakshijoshii
1         medpagetoday
2            nickmmark
3      mukeshm07384110
4         DipakBiswas_       
5      jaysanchezdorta
6         Terry6969696
7            LizShelby
8            wlharper1
9       BruhOriginalMe

我想要的:

0            nickmmark
1            nickmmark
2            nickmmark
3      jaysanchezdorta
4      jaysanchezdorta      
5      jaysanchezdorta
6            wlharper1
7            wlharper1
8            wlharper1
9       BruhOriginalMe

你可以去

df.groupby(np.arange(len(df)) // n)[col_name].transform("last")

通过查看除以 n 后的 0...N-1 个值的除数,可以按帧的每个第 n 个元素进行分组。例如,对于 n = 3 的 0..7 个值,我们得到 0、0、0、1、1、1、2。然后 transformlast 得到每个组的最后一个条目并产生为每个小组成员重复一个类似索引的系列。

对于给定的样本:

>>> df

             names
0     sakshijoshii
1     medpagetoday
2        nickmmark
3  mukeshm07384110
4     DipakBiswas_
5  jaysanchezdorta
6     Terry6969696
7        LizShelby
8        wlharper1
9   BruhOriginalMe

>>> n = 3
>>> col_name = "names"
>>> df.groupby(np.arange(len(df)) // n)[col_name].transform("last")

0          nickmmark
1          nickmmark
2          nickmmark
3    jaysanchezdorta
4    jaysanchezdorta
5    jaysanchezdorta
6          wlharper1
7          wlharper1
8          wlharper1
9     BruhOriginalMe