假设我有一个包含字符串的数据框,例如:
df = pd.DataFrame({'col1':list('some_string')})
col1
0 s
1 o
2 m
3 e
4 _
5 s
...
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种方法来应用滚动窗口,col1并以一定的窗口大小连接字符串。举例来说window=3,我要获取(没有最少的观察数):
col1
0 s
1 so
2 som
3 ome
4 me_
5 e_s
6 _st
7 str
8 tri
9 rin
10 ing
Run Code Online (Sandbox Code Playgroud)
我尝试了显而易见的解决方案,rolling这些解决方案无法处理对象类型:
df.col1.rolling(3, min_periods=0).sum()
df.col1.rolling(3, min_periods=0).apply(''.join)
Run Code Online (Sandbox Code Playgroud)
两者都提高:
无法处理此类型->对象
是否有通用的方法(不shift用于匹配的这种特定情况w=3)?
换个系列怎么样?
df.col1.shift(2).fillna('') + df.col1.shift().fillna('') + df.col1
Run Code Online (Sandbox Code Playgroud)
推广到任意数字:
pd.concat([df.col1.shift(i).fillna('') for i in range(3)], axis=1).sum(axis=1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
119 次 |
| 最近记录: |