組之後,我有Dataframe
這樣滾動粘貼值的字符串由
df = pd.DataFrame({'E-Mail': np.random.choice(list('AB'), 20),
'Session': np.random.randint(1, 10, 20)})
df.Session=df.Session.astype(str)
df
Out[350]:
E-Mail Session
0 A 7
1 A 8
2 A 6
3 A 1
4 B 6
5 A 6
6 A 3
7 A 9
8 B 5
9 B 3
10 B 5
11 B 6
12 B 1
13 B 5
14 A 3
15 A 6
16 A 8
17 A 2
18 A 4
19 A 6
我想要得到的各group
(由E-Mail
)滾動粘貼,窗口= 2。
這是我目前的方法。
def running_paste(s, n):
return [','.join(s[lo:lo + n]) for lo in range(len(s) - n + 1)]
A=[]
for name, df1 in df.groupby('E-Mail'):
df1['LOL'] = np.append(np.nan, running_paste(df1.Session, 2))
A.append(df1)
pd.concat(A,axis=0)
Out[352]:
E-Mail Session LOL
0 A 7 nan
1 A 8 7,8
2 A 6 8,6
3 A 1 6,1
5 A 6 1,6
6 A 3 6,3
7 A 9 3,9
14 A 3 9,3
15 A 6 3,6
16 A 8 6,8
17 A 2 8,2
18 A 4 2,4
19 A 6 4,6
4 B 6 nan
8 B 5 6,5
9 B 3 5,3
10 B 5 3,5
11 B 6 5,6
12 B 1 6,1
13 B 5 1,5
有沒有更簡單的方法來實現這一目標?
@ScottBoston我沒有管理很長一段時間..Let我做這個工作,並添加到我的個人資料等等:) – Wen