全体は残して置いた方が良いと思うので、1列を'all'列に変えてから処理してみました。
あとは累積和を使って処理しています。
python
1>>> print(df)
2 0 1
30 A 255849052210377143409090672873
41 B 500908170655114213488073602792
52 C 829944362691178397288179376276
63 D 191343152710332673932887471203
74 E 986695504538897408616301442993
8>>> from itertools import accumulate
9>>> x = [4, 3, 3, 3, 4, 3, 2, 2]
10>>> df.columns = [0, 'all']
11>>> for i, s, e in zip(range(1,len(x)+1), accumulate([0]+x), accumulate(x)):
12... df[i] = df['all'].str[s:e]
13...
14>>> print(df)
15 0 all 1 2 3 4 5 6 7 8
160 A 255849052210377143409090672873 2558 490 522 103 7714 340 90 90
171 B 500908170655114213488073602792 5009 081 706 551 1421 348 80 73
182 C 829944362691178397288179376276 8299 443 626 911 7839 728 81 79
193 D 191343152710332673932887471203 1913 431 527 103 3267 393 28 87
204 E 986695504538897408616301442993 9866 955 045 388 9740 861 63 01
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/01 07:28