如何解决如何重新采样熊猫列中的值?
我了解时间序列数据的重采样功能。我想要一个包含 3000 个示例的普通列上的类似内容。我想保持长度。我希望每一行都具有 n 长窗口中最后一次出现的值。
我也知道 group by 和 last 函数,但在这里我根据长度而不是某个值进行分组。
我想要不重叠的窗口,所以滚动也无济于事。
大小为三的窗口示例:
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,1,2。然后 transform
和 last
得到每个组的最后一个条目并产生通过为每个组成员重复一个类似索引的系列。
对于给定的样本:
>>> 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。