回答編集履歴

1

修正

2022/09/15 17:58

投稿

can110
can110

スコア38266

test CHANGED
@@ -1,9 +1,10 @@
1
1
  分割したい単位でgroupbyし、それぞれに空白行を追加して最後にconcatで連結すればよいです。
2
2
  なお、列の型はできれば変えたくないので、以下では数値列には`-1`をセットしています。
3
+ また、この手法ではFQDNとfreqが同じ部分が離れた行に複数存在していた場合、それらは1つのブロックにまとまってしまうこと(以下での`f`の行)だけ留意ください。
3
4
  ```Python
4
5
  import pandas as pd
5
6
 
6
- df = pd.DataFrame({'Title':list('abcde'),'FQDN':list('zzyxx'), 'freq':[10,10,2,2,2]})
7
+ df = pd.DataFrame({'Title':list('abcdef'),'FQDN':list('zzyxxz'), 'freq':[10,10,2,2,2,10]})
7
8
 
8
9
  dfs = []
9
10
  empty = pd.DataFrame([['','',-1]], columns=df.columns) # 空白行
@@ -17,6 +18,7 @@
17
18
  Title FQDN freq
18
19
  0 a z 10
19
20
  1 b z 10
21
+ 5 f z 10
20
22
  0 -1
21
23
  2 c y 2
22
24
  0 -1